Академический Документы
Профессиональный Документы
Культура Документы
Sixteenline es un arreglo de sensores que pueden ser leídos de manera digital o analógica; para
dicho fin, se emplea un multiplexor analógico con el cual se determina el sensor específico a ser
leído.
Pines Descripción
Vcc 3.3 a 5V
Gnd 0 V referencia
An Salida analógica de 0 a Vcc
Dig Salida digital 0/1
A/1
B/2 Entrada
C/3 Selector canal de multiplexor o sensor
D/4
Definición de pines
sensor
A/1 B/2 C/3 D/4
seleccionado
0 0 0 0 15
1 0 0 0 14
0 1 0 0 13
1 1 0 0 12
0 0 1 0 11
1 0 1 0 10
0 1 1 0 9
1 1 1 0 8
0 0 0 1 8
1 0 0 1 6
0 1 0 1 5
1 1 0 1 4
0 0 1 1 3
1 0 1 1 2
1
0 1 1 1 1
1 1 1 1 0
Tabla de verdad del multiplexor
Peso: 5g
Teniendo esto listo, se procede a realizar el montaje como se muestra en la siguiente imagen.
2
Esquema de prueba rápida.
Se debe energizar entre VCC y GND con un voltaje de 3.3V a 5V, como se muestra en el anterior
esquema; de esta manera el voltaje digital de salida por el pin Dig será el mismo de alimentación;
mientras que la salida analógica (An) tendrá valores de entre 0v a VCC.
Se utiliza la multiplexación de las señales para disminuir el uso de pines, de tal modo que solo se
puede leer la señal de un sensor a la vez. Para tal fin, se debe seleccionar el sensor mediante los
pines (1, 2, 3, 4), teniendo en cuenta que solo se reconocen valores de 1 (HIGH) o 0 (LOW) digitales
y de esta manera se construye la dirección poniendo en nivel 1 o nivel 0 según corresponda en la
tabla de verdad. Es decir, que si se quiere leer el valor analógico y el valor digital del sensor 15, se
debe colocar 1=LOW, 2=LOW, 3=LOW, 4=LOW, para el sensor 14 será 1=HIGH, 2=LOW, 3=LOW,
4=LOW, y así sucesivamente.
De esta manera, para hacer la programación más fácil, se crea una función con los pines como un
arreglo, de esta manera se enviará el número 0, 1, 2… etc según corresponda y la función se
encargará de poner los pines respectivos en alto o en bajo.
Para realizar la prueba rápida de la regleta, será necesario descargar e instalar las siguientes librerías
en arduino IDE.
>Logos.h ( )
Una vez instaladas la librerías, se debe realizar un nuevo sketch con el siguiente código para la
detección de la dirección de la pantalla OLED, esto debido a que la comunicación I2C requiere una
dirección de dispositivo, de otra manera, la pantalla oled no funcionara. (Recuerda tener el montaje
realizado para el correcto funcionamiento de los códigos a probar)
3
Copia y pega el código que aparece a continuación.
// --------------------------------------
// i2c_scanner
// Version 6, November 27, 2015.
// Added waiting for the Leonardo serial communication.
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
#include <Wire.h>
void setup(){
Wire.begin();
Serial.begin(9600);
while (!Serial); // Leonardo: wait for serial monitor
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4){
Serial.print("Unknown error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // wait 5 seconds for next scan
}
4
Una vez hecho esto, se puede subir, teniendo en cuenta que el programa está configurado para el
arduino nano.
5
Tan pronto se ha cargado el código en el arduino, se procede a abrir el monitor serial como se
muestra en la siguiente imagen, ahí se mostrara la dirección de la pantalla OLED (para nuestro caso
es la dirección 0x3C), la cual se usara en el siguiente programa.
Con lo cual se abrirá la siguiente ventana, donde se puede ver la dirección que el programa ha
detectado.
6
Copiamos esta dirección y la colocamos en la configuración de los pines del arduino como se
muestra a continuación.
A0 An
A1 Dig
A2 Pin 1
A3 Pin 2
D4 Pin 3
D7 Pin 4
7
Teniendo en cuenta la dirección de la pantalla OLED, puedes proceder a copiar y pegar el código en
tu sketch.
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Logos.h>
void setup() {
Serial.begin(9600);
drawbitmap();
sixteenline();
}
8
}
9
Ahora puedes compilar y cargar el programa, si todos los pasos se siguieron correctamente,
podrás ver en la OLED como se muestra a continuación.
10