Documentos de Académico
Documentos de Profesional
Documentos de Cultura
industrial clase 14
OPAMP mmultiplicador/divisor, control led RGB Arduino
OPAMP MULTIPLICADOR DIVISOR
APLICACIÓN MULTIPLICAR LOS VALORES DE PRESION A
Y B, DIVIDIRLO POR UN VALOR FIJO Y ACTIVAR UNA
CARGA
CIRCUITO REALIZADO EN TINKERCAD
WA NWFATIVO EL FINAL VT PORQUE
ES INVERSOR
LED RGB CONTROL CON
POTENCIOMETRO
• int Rojo = 11;
• int Verde = 10;
• int Azul = 9;
• int valorsensor0 = 0;
• int valorsensor1 = 0;
• int valorsensor2 = 0;
• void loop()
•{
• float Constante = (float) 255 / 1023; //salidas digitales 0 a 255, 5v/255=19.6mv hay una variacion digital los datos de float dependeran de las variaciones del
potencioometro, a las salidas digitales
• valorsensor0 = analogRead(pot2); //
• valorsensor1 = analogRead(pot1);
• valorsensor2 = analogRead(pot0);
•
• divisionR = Constante * valorsensor0;
• divisionV = Constante * valorsensor1;
• divisionA = Constante * valorsensor2;
•
• color(divisionR,divisionV, divisionA);
•}
• IRrecv irrecv(RECV_PIN); //creamos un objeto llamado RECV_PIN que va a leer los datos del
terminal 11
• decode_results results; //se crea otro objeto llamado results donde se van a almacenar los
datos que nosotros enviamos
• void setup()
•{
• pinMode(red,OUTPUT); //se establecen los pines de salida rojo,
• pinMode(blue,OUTPUT); //azul y
• pinMode(green,OUTPUT); //verde como salida
• void loop() {
• if (irrecv.decode(&results)) { //devuelve verdadero si reciben datos y falso si no
• Serial.println(results.value, HEX); // si se reciben datos se almacenan en codigo IR en hexadecimal
• irrecv.resume(); // Recibe los nuevos valores
•
• if(results.value==0xFD08F7){ //este es el numero uno
• digitalWrite(red,HIGH);
• digitalWrite(green,LOW);
• digitalWrite(blue,LOW);
• }
• else if(results.value==0xFD48B7){ //este es el numero 3
• digitalWrite(red,LOW);
• digitalWrite(green,LOW);
• digitalWrite(blue,HIGH);
• }
• else if(results.value==0xFD8877){ //este es el numero 2
• digitalWrite(red,LOW);
• digitalWrite(green,HIGH);
• digitalWrite(blue,LOW);
• }
• }
• delay(100);
•}
SENSOR INFLARROJO IR CONTROL DE
CARRO ROBOT
Conexión del CI L293D
• /**
• Se selecciona el boton por hexadecimal
• y luego se establece una Funcion por cada Boton
• **/
• #include <IRremote.h>
• IRrecv rc(11); //creamos un objeto llamado RECV_PIN que va a leer los datos del terminal 11
• void setup(){
• Serial.begin(9600);
• rc.enableIRIn(); //empieza la recepción
•
• pinMode(PWM_M1,OUTPUT);
• pinMode(PWM_M2,OUTPUT);
•
• pinMode(IN1_M1,OUTPUT);
• pinMode(IN2_M1,OUTPUT);
•
• pinMode(IN1_M2,OUTPUT);
• pinMode(IN2_M2,OUTPUT);
•}
• void loop(){
• if (rc.decode(&results)){
•
•
• switch(results.value){
• case 0xFD00FF://Boton Rojo de Power
• break;
• case 0xFD807F://Boton vol+
• forward(); //instrucción para indicar a un motor que avance
• break; // break es la palabra usada para salir del bucle.
• case 0xFD40BF:// Boton func/stop
• break;
• case 0xFD20DF://Boton |<<
• turnLeft(); //instrucción para girar a la izquierda
• break;
• case 0xFDA05F://Boton >||
• stop(); //instrucción para detenerse
• break ;
• case 0xFD609F://Boton >>|
• turnRight(); //doblar a la derecha
• break ;
• case 0xFD10EF://Boton down arrow
• speedDown(); //reduce la velocidad
• break ;
• case 0xFD906F://Boton vol-
• backward(); //instrucción para girar hacia atras
• break ;
• case 0xFD50AF://Boton up arrow
• speedUp(); //instrucción para acelerar
• break ;
•
•
• }
• rc.resume();
• }
•}
• void forward(){
• Serial.println("Adelante");
• analogWrite(PWM_M1, speed);
• analogWrite(PWM_M2, speed);
•
• digitalWrite(IN1_M1, HIGH);
• digitalWrite(IN2_M1, LOW);
•
• digitalWrite(IN1_M2, HIGH);
• digitalWrite(IN2_M2, LOW);
•}
• void backward(){
• Serial.println("Atras");
• analogWrite(PWM_M1, speed);
• analogWrite(PWM_M2, speed);
•
• digitalWrite(IN1_M1, LOW);
• digitalWrite(IN2_M1, HIGH);
•
• digitalWrite(IN1_M2, LOW);
• digitalWrite(IN2_M2, HIGH);
•}
• void turnLeft(){
• Serial.println("Girar a la Izquierda");
• analogWrite(PWM_M1, 0);
• analogWrite(PWM_M2, speed);
•
• digitalWrite(IN1_M1, HIGH);
• digitalWrite(IN2_M1, LOW);
•
• digitalWrite(IN1_M2, HIGH);
• digitalWrite(IN2_M2, LOW);
•}
• void turnRight(){
• Serial.println("Girar a la Derecha");
• analogWrite(PWM_M1, speed);
• analogWrite(PWM_M2, 0);
•
•}
• digitalWrite(IN1_M1, HIGH);
• digitalWrite(IN2_M1, LOW);
•
• digitalWrite(IN1_M2, HIGH);
• digitalWrite(IN2_M2, LOW);
•}
• void stop(){
• Serial.println("Parar");
• digitalWrite(IN1_M1, LOW);
• digitalWrite(IN2_M1, LOW);
•
• digitalWrite(IN1_M2, LOW);
• digitalWrite(IN2_M2, LOW);
•}
• void speedUp(){
• Serial.println("Aumentar Velocidad");
• speed+=10;
• if(speed>255) speed =255;
• analogWrite(PWM_M1, speed);
• analogWrite(PWM_M2, speed);
•}
• void speedDown(){
• Serial.println("Disminuir Velocidad");
• speed-=10;
• if(speed<0) speed =0;
• analogWrite(PWM_M1, speed);
• analogWrite(PWM_M2, speed);