UNIDAD EDUCATIVA PARTICULAR “POLITÉCNICO”
PRIMER AÑO DE BACHILLERATO – JOHNS HOPKINS
Sumativa- 3p. – SUMATIVA ARDUINO
Nombre: FRANCO VACA ANA JOSE Fecha: 13/08/2017
En este proyecto realizamos una conexión de 8 leds al arduino. Tuvimos que programarlo secuencialmente para que se enciendan de los extremos hacia el centro regulando el tiempo con un potenciador.
Materiales Utilizados:
Conexión física
En este proyecto realizamos una conexión de 8 leds al arduino. Tuvimos que programarlo secuencialmente para que se enciendan de los extremos hacia el centro regulando el tiempo con un potenciador.
Materiales Utilizados:
- 20 Cables Macho-Macho
- 8 leds
- Arduino Genuino
- Tinkercad
- 8 resistencias
- Potenciómetro
* Primero debemos realizar una simulación en Tinkercad para que si programamos algo mal no se dañen nuestros materiales.
Conexión física
- Conectar con un cable macho-macho el GND del arduino al Protoboard.
- Conectar los 8 leds en el protoboard, procurando que el lado positivo quede al lado derecho.
- Con los cables macho-macho conectar al negativo los leds.
- Luego, conectar los resistores al lado positivo de los leds.
- En el arduino conectar los pines digitales al lado positivo de los leds. (En mi caso elegí conectarlos en los pines del 6-13)
- Para terminar la conexión física, colocamos el potenciador en el protoboard. En la pata de salida, la de la mitad, conectamos con un cable macho-macho al pin analogico A0. La pata GND la conectamos al arduino en el pin de GND y también conectamos la pata positiva al pin de 5V.
Programación
- Abrimos el programa del Arduino.
- Para programar necesitamos darles nombres diferentes a los componentes que están conectados al protoboard. Colocamos "int", luego el nombre del componente "led x" (x= cualquier variable) y finalmente colocamos "= y" (y= nombre del pin de salida al que el componente esta conectado).
- Esto quedaría así:
- int led =12;
- int led2 =11;
- int led3 =10;
- int led4 =9;
- int led5 =8;
- int led6 =7;
- int led7 =6;
- int led8 =5;
Aquí ya tendríamos la programación de los leds, pero nos falta programar el potenciómetro. Básicamente seguimos los mismos pasos.
- int potenciometro =A0;
- int valorPotenciometro =0;
3. Hay que darle la señal al led, de que su pin es un pin de salida (OUTPUT). Pero antes especifiquemos esto con un "void setup() {".
- Luego, ya quedaría así:
- pinMode(led, OUTPUT);
- pinMode(led2, OUTPUT);
- pinMode(led3, OUTPUT);
- pinMode(led4, OUTPUT);
- pinMode(led5, OUTPUT);
- pinMode(led6, OUTPUT);
- pinMode(led7, OUTPUT);
- pinMode(led8, OUTPUT);
5. Determinamos el tiempo de cada secuencia para que funcionen con el potenciómetro que seria "valorPotenciometro" y determinar de que manera se la va a leer (Forma Analogica) "analogRead".
- valorPotenciometro = analogRead(potenciometro);
6. Para mandar las señales hay que poner "digitalWrite" al principio. Luego poner el nombre del componente y finalmente lo que quiero que haga. (Es por esto que los componentes deben tener distintos nombres). Si quiero que un led prenda seria HIGH ya que mandamos energía y que se apague seria LOW ya que no mandamos energía.
- digitalWrite(led, HIGH)
Quedaria asi, pero ahora tenemos que determinar la secuencia de los 8 leds para que se enciendan de los extremos hacia el centro y del centro hacia los extremos. Así que colocamos las variables de los componentes y determinamos si lo queremos prendido o apagado.
- digitalWrite(led, HIGH);
- digitalWrite (led8, HIGH);
- digitalWrite (led2, LOW);
- digitalWrite(led3, LOW);
- digitalWrite(led4, LOW);
- digitalWrite(led5, LOW);
- digitalWrite(led6, LOW);
- digitalWrite(led7, LOW);
La señal que mando aquí esta diciendo que se prendan los extremos. Esto hacemos con cada uno de los componentes.
7. Para terminar con las partes de la secuencia colocamos "delay(valorPotenciometro *2); ", que nos indica el tiempo de espera para comenzar la nueva parte de la secuencia.
Al finalizar la programación nos quedaria algo así:
- int led = 12;
- int led2 = 11;
- int led3 = 10;
- int led4 = 9;
- int led5 = 8;
- int led6 = 7;
- int led7 = 6;
- int led8 = 5;
- int potenciometro = A0;
- int valorPotenciometro = 0;
- void setup() {
- pinMode(led, OUTPUT);
- pinMode(led2, OUTPUT);
- pinMode(led3, OUTPUT);
- pinMode(led4, OUTPUT);
- pinMode(led5, OUTPUT);
- pinMode(led6, OUTPUT);
- pinMode(led7, OUTPUT);
- pinMode(led8, OUTPUT);
- }
- void loop() {
- valorPotenciometro = analogRead(potenciometro);
- digitalWrite(led, HIGH);
- digitalWrite (led8, HIGH);
- digitalWrite (led2, LOW);
- digitalWrite(led3, LOW);
- digitalWrite(led4, LOW);
- digitalWrite(led5, LOW);
- digitalWrite(led6, LOW);
- digitalWrite(led7, LOW);
- delay(valorPotenciometro *2);
- digitalWrite(led, LOW);
- digitalWrite (led8, LOW);
- digitalWrite (led2, HIGH);
- digitalWrite (led7, HIGH);
- digitalWrite (led3, LOW);
- digitalWrite (led4, LOW);
- digitalWrite (led5, LOW);
- digitalWrite (led6, LOW);
- delay(valorPotenciometro *2);
- digitalWrite(led, LOW);
- digitalWrite (led8, LOW);
- digitalWrite (led2, LOW);
- digitalWrite (led7, LOW);
- digitalWrite (led3, HIGH);
- digitalWrite (led4, LOW);
- digitalWrite (led5, LOW);
- digitalWrite (led6, HIGH);
- delay(valorPotenciometro *2);
- digitalWrite(led, LOW);
- digitalWrite (led8, LOW);
- digitalWrite (led2, LOW);
- digitalWrite (led7, LOW);
- digitalWrite (led3, LOW);
- digitalWrite (led4, HIGH);
- digitalWrite (led5, HIGH);
- digitalWrite (led6, LOW);
- delay(valorPotenciometro *2);
- digitalWrite(led, LOW);
- digitalWrite (led8, LOW);
- digitalWrite (led2, LOW);
- digitalWrite (led7, LOW);
- digitalWrite (led3, HIGH);
- digitalWrite (led4, LOW);
- digitalWrite (led5, LOW);
- digitalWrite (led6, HIGH);
- delay(valorPotenciometro *2);
- digitalWrite(led, LOW);
- digitalWrite (led8, LOW);
- digitalWrite (led2, HIGH);
- digitalWrite (led7, HIGH);
- digitalWrite (led3, LOW);
- digitalWrite (led4, LOW);
- digitalWrite (led5, LOW);
- digitalWrite (led6, LOW);
- delay(valorPotenciometro *2);
- }
¿Que complicaciones tuvo?
Tuve complicaciones al realizar la programación. Llegue bien hasta llevar a la secuencia de los extremos hacia dentro, pero no sabia como hacer la del centro hacia los extremos. Aunque esto lo resolvi con análisis ya que seria lo mismo pero en diferente orden.
En conclusion, es bueno prestar atención a los codigos de programacion ya que se te hace mas facil cuando los entiendes y sabes que señal estás enviando. Aparte, no se olviden nunca de los signos como ";" "{" "}" "(" ")" , etc.




No hay comentarios:
Publicar un comentario