Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///********** Proyecto **********
- //Lab 8: Controlar desde el Arduino, dos barras LED
- //(8 rojos, 4 amarillos, 4 verdes) con 2 IC 74HC595,
- //para mostrar el nivel de iluminación capturado con una
- //fotocelda
- ////* Autor: WILLIAM CASTILLO
- // incliur libreria
- //Asignación de funciones para los pines 9,8 y 10 , respectivamente
- //y a su vez asugnar los pines análogos y la conexión de los LEDs
- int DataPin = 9; //pin 9 conectado a DataIn
- int ClockPin = 10; //pin 10 conectado a CLK
- int LatchPIN = 8; //pin 8 conectado a LOAD/CS
- int POT1 = A0; //A0 Potenciometro
- int t1, pos = 0;
- int Leds[16] = {1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65531};
- byte parte1, parte2;
- void setup() {
- /* el MAX7219 esta en modo Power-saving cuando se
- inicia, se debe sacar de ese estado*/
- pinMode(POT1, INPUT);
- pinMode(LatchPIN, OUTPUT);
- pinMode(DataPin, OUTPUT);
- pinMode(ClockPin, OUTPUT);
- Serial.begin(9600);
- }
- void loop()
- {
- //Ejecucion del programa
- t1 = analogRead(POT1);
- pos = map(t1, 0, 700, 0, 15) % 15;
- envio();
- }
- //Envio de datos
- //Establecen paremetros opcionales
- void envio() {
- parte1 = Leds[pos] & 0x00FF;
- parte2 = (Leds[pos] & 0xFF00) >> 8;
- Serial.print(Leds[pos]);
- Serial.print(" ");
- Serial.print(parte1);
- Serial.print(" ");
- Serial.println(parte2);
- digitalWrite(LatchPIN, 0);
- //Permiten la variación en la intensidad de la luz
- //De acuerdo a dicho nivel , prenden los LEDs
- shiftOut(DataPin, ClockPin, MSBFIRST, parte2);
- shiftOut(DataPin, ClockPin, MSBFIRST, parte1);
- digitalWrite(LatchPIN, 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement