Paso 6: Para la declaración
Este ejemplo es todo acerca de la declaración. Voy a introducir la sintaxis y cómo usarlo. También utilizo un boceto directamente desde el IDE de Arduino. El bosquejo llamado ForLoopIteration de File/Examples/05.Control de carga.
Usted necesitará un Arduino, 6 LED ' s rojos, 6 resistencias de 220ohms, un protoboard y algunos cables de puente. Conectar el + ve hacerle de cada LED una resistencia y conectarlos en los pernos 2,3,4,5,6 y 7 en el Arduino. Luego conecte los cables – ve a la GND de Arduino.
El boceto:
int contador = 100; Cuanto mayor sea el número, menor el tiempo.
void setup() {}
para (int thisPin = 2 thisPin < 8; thisPin ++) {/ / usar un bucle inicializar cada pin como salida
pinMode (thisPin, salida);
}
}
void loop() {}
para (int thisPin = 2 thisPin < 8; thisPin ++) {/ / bucle del perno más bajo al más alto:
digitalWrite (thisPin, HIGH); activar el pin:
Delay(TIMER);
digitalWrite (thisPin, bajo); desactivar el pin:
}
para (int thisPin = 7; thisPin > = 2; thisPin--) {/ / bucle del perno más alto al más bajo:
digitalWrite (thisPin, HIGH); activar el pin:
Delay(TIMER);
digitalWrite (thisPin, bajo); desactivar el pin:
}
}
Vamos a diseccionar el bosquejo
Ya que este ejercicio es acerca de la declaración o lazo, voy a empezar por explicar cómo usarlo.
Sintaxis:
para (inicialización; condición; incremento) {}
(s);
}
El de bucle se utiliza para repetir las sentencias encerradas dentro del rizado entre paréntesis un número de veces definido por el incremento y la condición.
Por ejemplo:
para (int a = 0; a < 10; a ++) {serial.println(a);}
- Inicialización: int a = 0, declarar una variable y darle un valor.
- Condición: utilizar operadores de comparación para establecer la condición.
- Incremento: aumentar/disminuir el valor de la variable.
- Declaración: imprimir el valor de la variable a.
En el ejemplo anterior, declaramos una variable del tipo int llamado "a" y darle el valor 0. Luego fijamos una condición diciendo que mientras "a" es menos de 10 imprimir el valor de "a" aumento entonces "a" por 1 usando aritmética compuesta.
Aquí está la salida:
- ¿"a" = 0, "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 1, es "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 2, es "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 3, es "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 4, es "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 5, es "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 6, es "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 7, es "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 8, es "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 9, es "a" menos de 10? Sí; Imprimir "a" entonces añade 1 a "a"
- ¿"a" = 10, es "a" menos de 10? No; detener el bucle
Este circuito funcionó solamente 10 veces porque no se cumple la condición cuando funcionó el tiempo 11.
Compuesto asignaciones aritméticas o compuestas:
Estas son la notación abreviada de una ecuación aritmética. Puede sustituirse fácilmente con la ecuación aritmética pero se ven mejores en el código:
un ++ igual que a = a + 1 incrementos una por + 1
al igual que un = disminuye a-1 un por -1 a += b igual un = a + b incrementos una por + b a = b igual que un = a-b disminuye un – b un * = b igual que un = un * b incrementos un por un * b un = b igual un = un / b disminuye un por un / b
Volvamos al bosquejo:
int contador = 100;
Declare una variable del tipo int llamado temporizador con el valor 100. Esto se utilizará como un contador de tiempo más adelante para crear el efecto de Cylon.
void setup() {}
para (int thisPin = 2 thisPin < 8; thisPin ++) {}
pinMode (thisPin, salida);
}
}
Este es un uso muy interesante del bucle for. Usamos el bucle establecer los modos de pin en el Arduino a la salida. Esto sólo funciona si los pines que estamos utilizando son de una secuencia que utilizamos los pines 2 y 7. Este bucle sustituye las siguientes líneas:
- pinMode (2, salida);
- pinMode (3, salida);
- pinMode (4, salida);
- pinMode (5, salida);
- pinMode (6, salida);
- pinMode (7, salida);
void loop() {}
para (int thisPin = 2 thisPin < 8; thisPin ++) {}
digitalWrite (thisPin, HIGH);
Delay(TIMER);
digitalWrite (thisPin, bajo);
}
para (int thisPin = 7; thisPin > = 2; thisPin--) {}
digitalWrite (thisPin, HIGH);
Delay(TIMER);
digitalWrite (thisPin, bajo);
}
}
El objeto de este ejercicio es encender los LEDs uno a uno de izquierda a derecha y de derecha a izquierda encajonamiento un efecto Cylon o el jinete caballero.
Hacemos este efecto mediante la creación de dos lazos una vez mover la luz de derecha a izquierda y otro a las luces se mueven en la dirección opuesta.
para (int thisPin = 2 thisPin < 8; thisPin ++) {}
digitalWrite (thisPin, HIGH);
Delay(TIMER);
digitalWrite (thisPin, bajo);
}
En este bucle que empezamos en el pin número 2 encender el LED uno a la vez hasta que llegue el pin 7, la LED encendida a un retardo de "timer" que es de 100 milisegundos, esto nos da la ilusión de que la luz viajó de derecha a izquierda.
para (int thisPin = 7; thisPin > = 2; thisPin--) {}
digitalWrite (thisPin, HIGH);
Delay(TIMER);
digitalWrite (thisPin, bajo);
}
En el segundo bucle for la luz comienza en el pin 7 y se detiene en el pin2, apagar otra vez después de un retraso de "timer". Esto completa los efectos de la luz roja que se mueve en ambas direcciones.