Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********** Proyecto **********
- * Universidad Santiago de Cali
- * Laboratorio 3
- * Autor: Josue Mauricio Hurtado Mosquera
- * Descripcion:
- * Controlar 8 LEDs desde el Arduino, un LED encendido que se mueve en forma continua de izquierda a derecha, vía una interfaz gráfica
- * en Processing/ControlP5 para controlar el tiempo de encendido y el tiempo de apagado.
- */
- /********** Constantes **********/
- // Conectamos el LED al pin 9 que es PWM
- #define TOTLED 8 // Total LEDs
- /********** Variables **********/
- int led[TOTLED] = {
- 2, 3, 4, 5, 6, 7, 8, 9};
- // Guardamos el valor lo que recibimos via serial
- int valor = 0;
- int t_encendido = 0;
- int t_apagado = 0;
- void setup() {
- // put your setup code here, to run once:
- // La comunicacion serial sera a 9600 baudios
- Serial.begin(9600);
- // El pin 9 sera de un pin de salida
- int pos=0;
- while (pos < TOTLED){
- pinMode(led[pos], OUTPUT);
- pos=pos+1;
- }
- }
- /********** Funciones **********/
- void leer(){ //La función lee los datos provistos al puerto serial
- // Si hay datos disponibles en el puerto serial
- if (Serial.available() > 0) {
- // Leer el valor
- t_encendido = Serial.read();
- t_apagado = Serial.read();
- // Cambiar la intensidad de iluminacion del LED
- // analogWrite(led, valor);
- }//end leer()
- }
- // Pone en +5V el pin indicado, durante tantos milisegundos
- void on(int pin, int ms){ /funcion que dado un pin y un tiempo determina el tiempo de encendido.
- digitalWrite(pin, HIGH);
- delay(ms);
- } // end on()
- // Pone en GND el pin indicado, durante tantos milisegundos
- void off(int pin, int ms){ //funcion que dado un pin y un tiempo determina el tiempo de apagado.
- digitalWrite(pin, LOW);
- delay(ms);
- } // end off()
- // Ciclo infinito de ejecucion
- void loop() {
- // put your main code here, to run repeatedly:
- for (int pos = 0; pos < TOTLED; pos++) { //recorrido hacia la derecha, prendiendo y apagando.
- leer();
- on(led[pos], t_encendido);
- off(led[pos], t_apagado);
- }
- for (int pos = TOTLED-2; pos > 0; pos--) {//recorrido hacia la izquierda, prendiendo y apagando.
- leer();
- on(led[pos], t_apagado);
- off(led[pos], t_apagado);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement