Arduino
1.- Descaga el Arduino IDE de la pagina de Arduino siguiente link http://arduino.cc/en/pmwiki.php?n=main/software
Windows installer, pondra al arduino en archivos de programa con sus drivers, windows zip file, es portable y hay que instalar los drivers a mano.
2.- una vez descargado esta es la aplicación
3.- Configura arduino Si has puesto la version del instalador no tienes que instalar drivers no obstante si tienes la del z ip quiza lo tengas que hacer, los drivers estan dentro de la carpeta arduino asi que no debes tener problema en encontrarla, en general la tarjeta se instala sola una ves instalado el programa, solo se debe ajustar la interfaz para tu tipo de tarjeta.
En el menu tools, en board o tarjeta encontrars una lista, busca la tarjeta ATMEGA 2560
Debemos verificar en que puerto se ha asignado a nuestra tarjeta accede al administrador de dispositivos en windows.
En tu caso dira arduino mega
4.-Abrir el programa blink del menu basics del menu ex amples
5.- el codigo resultante es el siguiente
Instrucciones importantes
Int led=13; // es una declaracion de una variable que admite solo numeros enteros y cuyo valor comenzara en 13
void set up(){
// esta es una funcion propia de arduino, y sirve para configurar el dispositivo, y solo se ejecuta una vez } pinMode(led, HIGH);// esta es una funcion, el texto entre parentesis se le conoce como parametros, el primero led ; antes de la coma, le indica a arduino cual de sus terminales se configura, el segundo OUTPUT le dice a arduino como habra de comportarse si como entrada INPUT o como salida. “
“
”
”
“
”
Este programa tiene esa variable led que en realidad es 13, es decir que configuramos la terminal numero 13 como una salida.
void loop(){
//Esta funcion se ejecuta siempre en arduino, en general, lo que quieras hacer con arduino va dentro de estas llaves.
}
digitalWrite(led,HIGH);// esta instrucción hace que arduino mande voltaje a una terminal configurada como salida, en este caso la terminal led que vale 13, asi que si hay algo conectado en esa terminal, se accionara delay(1000);// esta funcion realiza un retardo en m ilisegundos que depende del numero dentro de sus parentesis,es decir su parametro que debe ser un numero entero, en este caso 1000 milisegundos, es decir que mantendra con voltaje la salida 13 durante 1 segundo y despues la apagara durante un segundo, y asi se mantendra intermitiendo su terminal numero 1 3.
6.- Carga el programa blink a tu tarjeta
7.- Observa que uno de los leds de la tarjeta enciende y apaga cada segundo, es por que la entrada 13 ya esta ligada a ese led desde frabica para encender uno de tus led conecta como sigue.
330 ohms
8.- observa como enciende y apaga tu led, ahora has aprendido como controlar una salida con arduino. Ahora intenta una secuencia con tus Leds restantes.
330 ohms
330 ohms
330 ohms
// Encendido y apagado de 3 LEDs int ledPin1 = 6; // Define las salidas de los LED´s int ledPin2 = 7; int ledPin3 = 8; void setup() { // Configura las SALIDAS pinMode(ledPin1, OUTPUT); // declarar LEDs como SALIDAS pinMode(ledPin2, OUTPUT);pinMode(ledPin3, OUTPUT); digitalWrite(ledPin1, LOW); // Apaga los LEDs digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, LOW); } void loop(){ //Bucle de Funcionamiento digitalWrite(ledPin1, HIGH); // Apaga y enciende los leds cada 20 0 ms delay(200); digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, HIGH); delay(200); digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, HIGH);
delay(200); digitalWrite(ledPin3, LOW); }
Para esta practica abriremos el archivo Analoginout Serial del menu analog del menu examples.
Como puedes ver en la figura siguiente tu sensor se compone por un led infrarojo y un fototransistor. El fototrnsistor en general es el led de color mas obscuro, el diodo infrarrojo es el claro, y sus terminales van dadas por la matricula, donde lleva grabada la matricula o are a de marcado, son las terminales del fototransistor, las del lado opuesto a la matricula son las del diodo infrarrojo.
Hay dos formas de conectar tu CNY-70 como lo muestra la figura siguiente:
Si alimentamos el sensor con 5V lo normal es utilizar para RD 150 Ohms y para RT 22 KOhms la terminal de salida la mandamos a A0. En tu Arduino mega. Volviendo al programa de Arduino tenemos las siguientes instrucciones:
const int analogInPin = A0; // esto ess una declaracion como en los anteriores programas con la unica diferencia que a la variable analoginpin no se le podra cambiar su valor A0 puesto que colocamos el comando const . “
“
”
”
Serial.begin(9600);// inicializa la comunicación atraves del puerto serial con la computadora, esto nos ayudara a ver que esta visualizando el sensor.
sensorValue = analogRead(analogInPin);// aquí le asignamos a la variable sensorValue, el valor de la lectura de la entrada A0, cuyos valores van desde 0 a 102 3, lo cual significa que cuando no recibimos voltaje la lectura sera 0, y cuando recibamos 5v sera 1023, dado que es analogica se puede ver un rango entre 0 y 1023, o 0 y 5v.
outputValue = map(sensorValue, 0, 1023, 0, 255 ); esta instrucción no la ocuparemos en adelante sin embargo su funcionamiento es ajusta el valor de la variable outputValue, entre 0 y 255, dependiendo del valor de sensorValue, que le e stamos diciendo estara entre 0 y 1023; los primeros tres parametros de la funcion map. analogWrite(analogOutPin, outputValue);// esta instrucción entrga un porcentaje de voltaje determinado por su segundo parametro en el pin indicado por su primer parametro, es decir que entregara el voltaje indicado por output value, en el analogoutpin que es la terminal 9 en este caso, las terminales analogicas de tu arduino mega vienen marcadas por la leyenda PWM y tiene una resolucion de 0 a 255, 0 para 0 voltss y 255 para entregar 5 volts en la terminal.
Finalmente Serial.print("\t output = "); // escribe en el puerto serial el valor visto por el sensor Serial.println(outputValue); // escribe en el puerto serial el valor ntregado a la terminal PWM(analogica)
el que nos interesa es el valor del sensor osea las instrucciónes
Serial.print("sensor = " ); Serial.print(sensorValue);
Con estas vemos que esta viendo nuestro sensor, carga elprograma en tu tarjeta arduino y abre la ventana de puerto serial
Visualiza que pasa cuando obstruyes tu sensor cny-70 con algo de color negro, y que pasa cuando le colocas algo de color blanco, ve como cambia el valor del sensor y anotalo, que valor tiene en blanco y cual tiene en negro.
Modifica tu programa con el codigo siguiente que e s combinacion del blink y el analog in out ser ial que acabamos de probar.
const int analogInPin = A0; // Analog input pin that the potentiometer is attached to const int analogOutPin = 9; // Analog output pin that the LED is attached to
int sensorValue = 0;
// value read from the pot
int outputValue = 0;
// value output to the PWM (analog out)
int led = 13; int valorenblanco=0;//aqui pon el valor que mediste en blanco o en negro void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); pinMode(led, OUTPUT); }
void loop() { // read the analog in value: sensorValue = analogRead(analogInPin); if(sensorValue <= valorenblanco) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); }
Serial.print("sensor = " );
Serial.println(sensorValue);
// wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(2); }