Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********** Proyecto **********
- * Laboratorio 07: Controlar desde el Arduino, un Display LED de
- * 7-Segmentos (Anodo Común), a través de un IC 74HC595, para mostrar un número
- * de 0 a 9, dependiendo de la posición del Potenciómetro.
- *
- * Autor: Oscar E. Bustamante R.
- *
- * Version: 1
- */
- /********** Librerias **********/
- // ninguna
- /********** Constantes **********/
- #define POT A8 // Potenciometro
- /********** Variables **********/
- // pin que envia los datos al 74HC595
- int data_pin = 9;
- // pin que conecta el latch
- int latch_pin = 10;
- // pin que conecta el reloj
- int clock_pin = 11;
- // valores a enviar a el 74HC595, los cuales son enviados
- // como binarios negativos usando ~ para negarlos
- int display7seg[10] = {~63,~6,~91,~79,~102,~109,~125,~7,~127,~111};
- // Guardamos el valor lo que recibimos por el potenciometro
- int valor;
- void setup() {
- // La comunicacion serial sera a 9600 baudios
- Serial.begin(9600);
- // establece el potenciometro como entrada
- pinMode(POT, INPUT); // Entrada del potenciometro.
- // establecer pines a la salida para que pueda controlar el 74HC595
- pinMode(data_pin, OUTPUT);
- pinMode(latch_pin, OUTPUT);
- pinMode(clock_pin, OUTPUT);
- }
- void loop() {
- // Guarda los valores de analoogRead y lo mapeamos para evitar que salga
- // del rango, para ser usado en el analogWrite.
- valor = map(analogRead(POT),0,1023,0,9);
- Serial.println(valor);
- // toma el latch_pin en bajo (LOW), para que los LEDs no cambien, mientras
- // se envian los datos (en bits).
- digitalWrite(latch_pin, LOW);
- // cambiar los bits ej. 0000 0001 0002 0003...
- shiftOut(data_pin, clock_pin, MSBFIRST, display7seg[valor]);
- //toma el latch_pin en alto (HIGH), para que los LEDs se iliminen
- digitalWrite(latch_pin, HIGH);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement