7063
Comentario:
|
7056
|
Los textos eliminados se marcan así. | Los textos añadidos se marcan así. |
Línea 153: | Línea 153: |
. {{attachment:,k.jpg|,k.jpg||height="520",width="400"}} | . {{attachment:,k.jpg||height="520",width="400"}} |
Curso Sensibilización Hardware Libre (Unidad 001)
Tabla de Contenidos
001/04 Actividad 001
En esta primera actividad se busca la primera interacción entre el arduino. Es el ejemplo más sencillo para comprender el funcionamiento del IDE arduino, la compilación, verificación y programación del hardware.
Materiales a utilizar
- 4 Resistencia 110ohm
- 1 potenciometro
- Tarjeta Arduino con cable conexion USB
- PC con programas
- Protoboard
Programa arduino 001
Este primer programa ... lo que realiza es encender y apagar el led trece (led interno de la tarjeta). Controlando asi la salida digital.
// Original de: http://www.arduino.cc/ // Modificado Cenditel csoto y gguillen (p) // Programa digitalWrite int ledPin = 13; // configura el pin a utilizar // pin 13 tiene un led interno // En setup se guardan las configuraciones iniciales void setup() { pinMode(ledPin, OUTPUT); // } // En loop se repite y repite indefinidamente void loop() { digitalWrite(ledPin, HIGH); // configura LED on delay(50); // espera 50 digitalWrite(ledPin, LOW); // configura LED off delay(50); // espera 1000 }
Variaciones a este programa son los tiempos de los retardos, donde se pueden cambiar para observar visualmente cambios en el código.
Programa arduino 002
Con este segundo programa se desea trabajar con las entradas digitales, también para validar.
Lo anterior nos permite la comprensión del hardware para salidas, entonces daremos el primer paso para entradas que es la adición de un botón, trabajando sobre el mismo código, antes realizaremos referencia a
describo la resistencia pull up, para que sirve, maneras de utilizarlas.
figura 14.1: Resistencia Pull up
figura 14.2: Entrada salida.
int ledPin = 13; // configura el pin a utilizar 13 // pin 13 tiene un le interno int inPin = 7; // configura el pin a utilizar 7 int val = 0; // variable to store the read value int ledpin1=5; //pin tomado pra encender un led int ledpin2=6; // pin tomado para hacer sonar un speaker // En setup se guardan condiciones iniciales void setup() { pinMode(ledPin, OUTPUT); // configura pin como salida digital pinMode(inPin, INPUT); // configura pin como entrada digital pinMode(ledpin1, OUTPUT); pinMode(ledpin2, OUTPUT); } // En loop se repite y se repite indefinidamente void loop() { val = digitalRead(inPin); // read the input pin digitalWrite(ledPin, val); // sets the LED to the button's value if(val==HIGH){ digitalWrite(ledpin1, HIGH); digitalWrite(ledpin2, LOW);} else { digitalWrite(ledpin1, LOW); digitalWrite(ledpin2,HIGH); } } // Original de: http://www.arduino.cc/en/Tutorial/Blink // Modificado Cenditel csoto y gguillen (p) // Programa digitalRead
En esta representacion tangible de ete diseño tanto en sofware como en la practica se denota como se puede tener manipulacion con las funcionalidades en su totalidad teniendo presente que existen una gran gama de solucines en cuanto a funcionalidades se tienen.
Programa arduino 003
Para seguir con las entradas y salidas digitales se plantea el ejercicio de un semaforo donde se configuran los tiempo de cambio
//programa del semaforo int ledpint = 13; //pin guia int led_roj = 7; //pin guia verde int led_ama = 8; //pin que se va a utilizar amarillo int led_ver = 9; //pin a utilizar rojo int val = 0; // aleatoria void setup() { pinMode (ledpint ,INPUT); // EL PIN 13 SE DECLARA COMO ENTRADA pinMode (led_roj,OUTPUT); // EL PIN 7 SE DECLARA COMO SALIDA pinMode (led_ama,OUTPUT); // " " 8 " " " " pinMode (led_ver,OUTPUT); // " " 9 " " " " } void loop() { digitalWrite(led_roj,HIGH); digitalWrite(led_ama,LOW); digitalWrite(led_ver,LOW); delay(1000); digitalWrite(led_roj,LOW); digitalWrite(led_ama,LOW); digitalWrite(led_ver,HIGH); delay(1000); digitalWrite(led_roj,LOW); digitalWrite(led_ama,HIGH); digitalWrite(led_ver,LOW); delay(500); }
En este puno de partida ya se empezamos a realizar trabajos de funcionalidades abiertas a resover espectativas,el semaforo no es mas sino configurarar unas salidas en realcion al aumento o disminucion del tiempo de funcionamiento e cada una de ellas.
Programa arduino 004
/* Activaci�n de un dispositivo de 12V mediante un sensor de presencia PIR */ int interruptor = 12; int sensorPIR = 4; long tiempoEncendido = 120000; // Tiempo en mili-segundos (2 minutos) int PIRactivo=0; long contador = 0; void setup (){ pinMode(interruptor, OUTPUT); pinMode(sensorPIR, INPUT); } void loop (){ PIRactivo=digitalRead(sensorPIR); // Lee el sensor PIR if (PIRactivo==HIGH){ // Si est� activo reinicia el contador de tiempo contador=tiempoEncendido; // al tiempo de encendido total. } if (contador > 0) { // Si el contador de tiempo es positivo mantiene contador = contador - 200; // encendido el interruptor y decrementa el digitalWrite(interruptor,HIGH); // tiempo de encendido, sino lo apaga. } else { digitalWrite(interruptor,LOW); } delay (200); }
Un poco más alla
Existen variaciones que se le realizan a este programa, la idea es comenzar a trabajar en los códigos, plasmar las ideas en líneas de programa, esa es la vía. unas posibles variaciones es el integrar el sensor al semáforo e incluirle "inteligencia", simplemente que las luces sólo cambien a verde cuando detecten la presencia de un carro.