es gl es ca gl gl gl gl es gl en gl es en pt ceb gl gl gl gl gl si it en zh gl si en hbs_lat gl gl es gl gl gl gl gl gl gl gl cs pt fa gl en en en gl en en en gl en en en gl en en en es en en en gl gl en it en gl gl gl gl gl gl gl gl gl gl ca fa gl en en en gl en en en gl en en en gl en en en es en en en gl gl en en en gl ca ast gl en en gl en en es gl en zh en gl gl gl gl en en uz pt gl en en gl en en gl en en es gl en id gl gl gl gl gl gl es gl gl gl gl gl gl gl en gl gl gl gl en gl es es gl gl gl pt es gl gl gl pt pt en gl ar es gl en en en gl gl gl ca gl ca gl gl gl gl gl gl gl gl it gl gl gl gl gl gl gl gl gl gl en it es es gl es gl es es gl pt en gl gl ca fr fr gl gl gl pt es sv es gl sv pt en gl hu en gl gl en gl it it es uk pt gl gl gl gl gl en gl gl es gl gl vi gl gl gl gl es es gl gl gl gl gl it gl es en en en gl en en en en gl en en en en gl
Controlador de motores – Arduino
Para inverter o sentido de xiro dun motor o que debemos facer é cambiar a polaridade nos seus terminais. Segundo sexa esta conexión o motor xirará en sentido horario ou antihorario. Tamén, segundo sexa a voltaxe que chegue aos terminais, o motor xirará a máis ou menos velocidade.
Para realizar estas funcións cun único compoñente e de forma automática utilizamos os chamados controladores de motores o drivers, cuxa función é controlar o movemento dos motores, tanto en velocidade como en sentido de xiro, a través dos sinais nos seus terminais ou pins.
Hai moitos modelos de drivers no mercado. Irei poñendo aquí as conexións dos que dispoñamos no taller.
Vlox: alimentación do circuíto (5V)
Vmot: Alimentación dos motores (5-12V)
GND: 0V (se usas diferente alimentación para placa e motores, poñer GND común)
Os pins 3 e 6 (Output1 e Output2) son as saídas ás que se conecta o motor M1.
Os pins Input1 e Input2 son os pins de control do motor M1, que irán conectados á placa Arduíno para controlar o sentido de xiro do motor.
O pin 1, Enable1, activa o uso do motor M1.
Cando o pin Enable1 toma un valor HIGH o motor M1 pode xirar dependendo dos valores I1 e I2. Se toma un valor LOW o motor párase, independentemente dos valores que tomen I1 e I2.
Asignando un valor entre 0 e 255 ao Enable desde un pin pwm regulamos a velocidade do motor.
analogWrite(Enable1, 150); digitalWrite(In1, HIGH); digitalWrite(In2, LOW);
É un driver de motores que nos permite controlar o xiro e velocidade de dous motores de corrente continua.
O driver inclúe un regulador de tensión que nos permite tanto alimentar os motores como obter unha saída de tensión de 5V pola saída Vlogico. Debemos alimentar o módulo cunha tensión máxima de 12V. Podemos usar esa saída para alimentar a placa arduino.
Jumper cerrado: alimentamos con 12V Vm e GND. Podemos alimentar a placa arduino conectando Vlogico por Vin. Non conectar tensión por Vlogico, é unha saída.
Jumper aberto: Habería que alimentar os motores a través de Vm e o módulo controlador con 5V a través de Vlogico, unindo GND.
IN1 e IN2 controlan o sentido de xiro do motor A. IN3 e IN4 do motor B.
ENA activa e controla a velocidade de xiro do motor A. ENB do motor B, utilizando sinais PWM (de 0 a 255)
Se hai conectados jumpers nos pins Enable os motores se moverán á velocidade máxima e non poderemos controlar a súa velocidade.
Exemplo controlando a velocidade:
analogWrite(ENA, 150); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
Por exemplo, para o motor A, o pin PWMA controla a velocidade de xiro (valores de 0 a 255), e os pins AIN1 e AIN2 o sentido de xiro.
Exemplo controlando a velocidade:
analogWrite(PWMA, 150); digitalWrite(AIN1, HIGH); digitalWrite(AIN2, LOW);
Este driver só é útil para pequenos motores de baixo consumo (máximo 1A) e cun par relativamente baixo. Son moitos os proxectos que usan este tipo de motores e con este driver simplificamos as conexión e programación.
Aliméntase cunha tensión entre 2,5 e 12V. Podemos alimentalo a través da saída de 5V de arduino.
Os pins de control deben ser PWM para poder controlar a velocidade do motor.
Por exemplo para un motor A1, mediante a escritura dixital:
Se no canto de usar valores dixitais usamos valores PWM (de 0 a 255) controlamos a velocidade do motor.
analogWrite(A1A, 150); analogWrite(A1B, 0);
Neste exemplo imos controlar un motor cun L293D conectando Enable1 ao pin 10, Input1 ao pin 9 e Input2 ao pin 6, pero podes adaptar o código a calquera outro driver de motores.
Faremos que o motor execute o seguinte de maneira cíclica:
arranca nun sentido e xira durante 3 segundos,
para durante un segundo
xira durante 3 segundos en sentido contrario
volve parar durante un segundo.
// Declaración de variables: const int E1 = 10; // Enable pin const int I1 = 9; // Control pin 1 const int I2 = 6; // Control pin 2 // Configuración: void setup(){ pinMode( 6, OUTPUT); // Configuramos os pins pinMode( 9, OUTPUT); pinMode( 10, OUTPUT); } // Programa: void loop() { digitalWrite(E1, HIGH); // Activamos Motor digitalWrite(I1, HIGH); // Arrancamos nun sentido digitalWrite(I2, LOW); delay(3000); digitalWrite(E1, LOW); // Paramos Motor delay(1000); digitalWrite(E1, HIGH); // Activamos Motor digitalWrite(I1, LOW); // Arrancamos con cambio de sentido digitalWrite(I2, HIGH); delay(3000); digitalWrite(E1, LOW); // Paramos Motor delay(1000); }
Velocidade: Utiliza a función analogWrite(pin, PWM); para o control da velocidade do motor. Lembra que os sinais PWM van de 0 a 255.
Funcións I. Crea unhas función chamadas “esquerda”, “dereita” e “paro” que almacenen as instrucións do movemento do motor. Utilízaas para facer o mesmo programa anterior.
Funcións II. Engade a esas funcións un parámetro para indicar a velocidade de xiro.
Pulsadores. Conecta dous pulsadores. Cando prememos no primeiro o motor xira en sentido horario, cando prememos no segundo xira en sentido antihorario, e cando non prememos ningún para.
Finais de carreira. Fai que ao premer nun pulsador o motor xire nun sentido, e cando toca un microinterruptor final de carreira, pare. Ao premer noutro pulsador o motor xira en sentido contrario, e cando acciona outro microinterruptor final de carreira, para.
Potenciómetro. Conecta un potenciómetro á entrada analóxica A0. Fai que o pin Enable1 tome un valor entre 0 e 255 en función da entrada do potenciómetro (entre 0 e 1023) e observa o cambio de velocidade. Para enviar un valor PWM ao pin Enable1 lémbrate de que ten que estar conectado a un pin PWM do Arduíno. Utiliza a expresión: analogWrite(Enable1, pwm);
Deixa un comentario Cancelar a resposta
Nome Correo electrónico Sitio web
Gardar o meu nome, correo electrónico e web neste navegador para a próxima vez que faga un comentario.
Descrición de Arduíno UNO
O IDE de Arduíno
Entradas e saídas dixitais
Condicional if … else
Sinais PWM e lectura serial
Array de LEDs e funcións
A posición dun servo
Servos de xiro continuo
Motor de corrente continua
Motores paso a paso
Sensor de Luz LDR
Sensor de temperatura LM35 e TMP36
Sensor de temperatura e humidade DHT11
Sensor de temperatura DS18B20
Sensor de movemento PIR
Sensor de cor TCS3200
Sensor de cor TCS34725 RGB
Sensor de auga no solo
Medindo o tempo 1
Medindo o tempo 2: RTC
Bluetooth mestre + escravo
O tanque de auga
Reloxo de area dixital
A máquina máis inútil
Clasificador M&M’s por cor
Alarma para a cortadora láser
© 2022 Arduino • Creado con GeneratePress
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.