You are on page 1of 10
INSTITUTO POLITECNICO NACIONAL C.E.C.Y.T #3 “Estanislao Ramirez Ruiz” Robotica Practica No.6: ENTRADAS ANALOGICAS Equipo: 5 Integrantes: © Carrizales Chaman Eli Espinosa Servin Cesar Eduardo Garcia Angén Ernesto Martinez Manrique Saul Vargas Hernandez Johan Profesor: Orozco Magallén Eduardo Grupo: 61V13 1 INSTITUTO POLITECNICO NACIONAL CECYT 3 ESTANISLAO RAMIREZ RUIZ MANUFACTURA ASISTIDA POR COMPUTADORA PRACTICAS DE ROBOTICA PRACTICA 6 ENTRADAS ANALOGICAS Objetivo: Aprender a utilizar las entradas analdgicas de la placa de control asi como la forma de leer la entrada analégica de dispositivos que entregan dicha seffal para usarla en el control de robots manipuladores. > Potenciémetro de 10k0 Sensor de temperatura Im35 Sleds Placa Arduino vv Una fuente de alimentacion Protoboard Lor > Resistors Desarrollo: 1. Potenciémetro Conecta un potenciémetro de 10K0 a la entrada analdgica AO de la placa Arduino, construye el Circuito que se muestra en la Figura 1 y elabora un programa que indique el nivel de voltaje que el convertidor Analégico/Digital (DAC) de! micracontrolador esta registrando dependiendo de la posicién de potenciémetro, por ejemplo, cuando el DAC detecte un nivel del voltaje de 1 volt, se prende el led marcado con este nivel de tensién, , cuando el DAC detecte un nivel del voltaje de 2 volt, se prende el led marcado con este nivel de tensién y asi sucesivamente hasta llegar a una tensién lo més aproximado a SV. También, se debe observar dicho nivel de voltaje en el Monitor Serial del IDE del Arduino. vv Figura 1 Elaboré: M. en C. Eduardo Orozco Magalion Firma: INSTITUTO POLITECNICO NACIONAL . CECYT 3 ESTANISLAO RAMIREZ RUIZ MANUFACTURA ASISTIDA POR COMPUTADORA PRACTICAS DE ROBOTICA Programa: #tdefine led1 13 #define led2 8 #define led3 7 Hdefine led4 4 #define led5 2 int val=0; void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); Serial. begin(9600); } void loop() { int sensorValue = analogRead(A0); val=sensorValue/4; Serial. printin(val); delay(1); if((val>=088val<=51)){ digitalWrite(led1 HIGH); delay(200); digitalWrite(led1,LOW); delay(200); } if((val>=52&&val<=102)){ digitalWrite(led2, HIGH); delay(200); digitalWrite(led2,LOW); delay(200); } if((val>=103&&val<=153)){ Elaboré: M. en C. Eduardo Orozco Magalion Fire: INSTITUTO POLITECNICO NACIONAL e CECYT 3 ESTANISLAO RAMIREZ RUIZ MANUFACTURA ASISTIDA POR COMPUTADORA PRACTICAS DE ROBOTICA digitalWrite(Ied3, HIGH). delay(200); digitalWrite(Ied3, LOW); delay(200); } if((val>=1548&val<=204)){ digitalWrite(Ied4, HIGH); delay(200); digitalWrite(led4,LOW); delay(200); } if{(val>=20588val<=255)){ digitalWrite(Ied5, HIGH); delay(200); digitalWrite(led5,LOW); delay(200); } } Firma: Elaboré: M. en C. Eduardo Orozco Magallon INSTITUTO POLITECNICO NACIONAL . CECYT 3 ESTANISLAO RAMIREZ RUIZ MANUFACTURA ASISTIDA POR COMPUTADORA PRACTICAS DE ROBOTICA Fotorresistencia o resistencia dependiente de la luz (LDR) Conecta una LOR a la entrada AO de la placa Arduino, construye el circuito que se muestra en la Figura 2 y elabora un programa que mueva el servomotor a la posicién de 45° sila intensidad de la luz es baja, sila intensidad de la luz es media, el motor se mueva a la posicién de 90° y sila intensidad de la luz es alta, el motor se mueva a la posicién de 180". EI movimiento del servomotor debe ser suave y debe recorrer todas las posiciones desde 0” hasta 45° con la Intensidad de luz baja, todas las posiciones de 45° a 90° con la intensidad de luz media y asi para el otro caso, es decir, el movimiento no debe ser de una posicién a otra Figura 2 Elaboré: M. en C. Eduardo Orozco Magalion Firma: 7 INSTITUTO POLITECNICO NACIONAL CECYT 3 ESTANISLAO RAMIREZ RUIZ MANUFACTURA ASISTIDA POR COMPUTADORA PRACTICAS DE ROBOTICA Programa: #include Servo myservo; void setup() { myservo.attach(6); Serial.begin(9600); void loop() { int ade = analogRead(A0); int angulo = map(ade, 0, 1023, 0, 400); myservo.write(angulo); Serial.printin(angulo); delay(10); } Elaboré: M. en C. Eduardo Orozco Magallon Firma: INSTITUTO POLITECNICO NACIONAL CECYT 3 ESTANISLAO RAMIREZ RUIZ MANUFACTURA ASISTIDA POR COMPUTADORA PRACTICAS DE ROBOTICA 3. Sensor de temperatura Conecta el sensor LM35 a la entrada AO de la placa Arduino, construye el circuito que se muestra cen la Figura 3 y elabora un programa que mueva el motor a pasos 5 vueltas en sentido horario sila temperatura del ambiente es de19°C,, sila temperatura del ambiente sube a 22°C, el motor debe girar 6 vueltas en sentido antihorario y sila temperatura del ambiente estd entre 20°C y 21°C, el motor se mueva 1 vuelta en sentido horario, Debes mencionar en este punto el tipo de motor a pasos que estas usando, el Angulo de giro por paso y debes desarrollar el calculo que justifique el numero de pasos por revolucién que estas programando. Figura 3 Programa: eneennn a tense £ = int IN2 = 7; int IN3 = 4; int IN4 = 2; int demora int LM; float TEMP; void setup() { Serial.begin(9600); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } Elaboré: M. en C. Eduardo Orozco Magalion Firma: INSTITUTO POLITECNICO NACIONAL CECYT 3 ESTANISLAO RAMIREZ RUIZ MANUFACTURA ASISTIDA POR COMPUTADORA PRACTICAS DE ROBOTICA void loop() { LM = analogRead(A0); TEMP = ((LM *5000.00)/1023)/10; Serial.printin(TEMP, 2); if(TEMP>=19 && TEMP<20);{ for (int i= 0; i < 2560; i++) // 25604 = 10240 pasos = 5 giros (horario) { digitalWrite(IN1, HIGH); // paso 4 digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); delay(demora); digitalWrite(IN1, LOW); // paso 2 digitalWrite(IN2, HIGH); digitalwrite(IN3, LOW); digitalWrite(IN4, LOW); delay(demora); digitalWrite(IN1, LOW); // paso 3 digitalwrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); delay(demora); digitalWrite(IN1, LOW); // paso 4 digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); delay(demora); } } if(TEMP>=22 && TEMP<23);{ Elaboré: M. en C. Eduardo Orozco Magallon Firma: 7 INSTITUTO POLITECNICO NACIONAL CECYT 3 ESTANISLAO RAMIREZ RUIZ MANUFACTURA ASISTIDA POR COMPUTADORA PRACTICAS DE ROBOTICA for (int i = 0; i < 3072; i++) // 30724 = 12288 pasos = { digitalWrite(IN1, LOW); // paso 1 digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); delay(demora); giros (antihorario) digitalWrite(IN1, LOW); // paso 2 digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); delay(demora); digitalWrite(IN1, LOW); // paso 3 digitalWrite(IN2, HIGH); digitalwrite(IN3, LOW); digitalWrite(IN4, LOW); delay(demora); digitalWrite(IN1, HIGH); // paso 4 digitalwrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); delay(demora); } } if(TEMP>=20 && TEMP<22);{ for (int i= 0; i < 512; i++) // 512*4 = 2048 pasos = 1. giro (horario) { digitalWrite(IN1, HIGH); // paso 1 digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); Elaboré: M. en C. Eduardo Orozco Magallon Firma: INSTITUTO POLITECNICO NACIONAL CECYT 3 ESTANISLAO RAMIREZ RUIZ MANUFACTURA ASISTIDA POR COMPUTADORA PRACTICAS DE ROBOTICA delay(demora); digitalWrite(IN1, LOW); // paso 2 digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); delay(demora); digitalWrite(IN1, LOW); // paso 3 digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); delay(demora); digitalWrite(IN1, LOW); // paso 4 digitalWrite(IN2, LOW); digitalwrite(IN3, LOW); digitalWrite(IN4, HIGH); delay(demora); Elaboré: M. en C. Eduardo Orozco Magallon Firma:

You might also like