En este proyecto les explicaré paso a paso, como variar la velocidad de un motor de corriente continua, a través de bluetooth y un arduino uno. Les voy a mostrar como crear la aplicación en app inventor, y les explicaré paso a paso el sketch para arduino uno, les mostraré el circuito que que hará de etapa de potencia, el cual es un puente h. Les voy a adjuntar diagramas y códigos fuente y todo lo que sirva para poder realizar este proyecto.
Sketch Arduino
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
//declaración de variables String cadena, motor, dato; int pwm1 = 3; int pwm2 = 5; int pwm3 = 6; int pwm4 = 9; int pwm5 = 10; int pwm6 = 11; int regulador; void setup () { Serial.begin(9600);// setea la velocidad del puerto serie //configura el 3 5 6 9 10 y 11 como salidas pinMode(pwm1,OUTPUT); pinMode(pwm2,OUTPUT); pinMode(pwm3,OUTPUT); pinMode(pwm4,OUTPUT); pinMode(pwm5,OUTPUT); pinMode(pwm6,OUTPUT); } void partirCadena() { if (cadena.indexOf(" ") >=0){ //comprueba los datos recibidos si tienen algun espacio motor = cadena.substring(0,(cadena.indexOf(" "))); // filtra la cadena val1 y val2". Toma desde el primer carácter al espacio en blanco. dato = cadena.substring(cadena.indexOf(" ")+1); //toma el valor val1 o val2. Desde el "espacio" hasta el siguiente valor } } void loop () { //lee las cadenas que ingresan al puerto serie if (Serial.available()) { cadena = String(""); while (Serial.available()) { cadena = cadena + char(Serial.read()); delay(1); } partirCadena();//llama a la función partirCadena regulador = dato.toInt();//convierte el valor recibido en un entero Serial.println(regulador);// muestra el valor en recibido en el terminal serial if (motor == "vel1") {//compara el valor de la cadena obetinada analogWrite(pwm2, 0); delay(500);// retardo para darle tiempo al motor para deternerse analogWrite(pwm1, regulador);// escribe el valor analogico en el pin nuemro 3 obtenido en el puerto serie } if (motor == "vel2") { analogWrite(pwm1, 0); delay(500); analogWrite(pwm2, regulador); } if (motor == "vel3") { analogWrite(pwm3, regulador); } if (motor == "vel4") { analogWrite(pwm4, regulador); } if (motor == "vel5") { analogWrite(pwm5, regulador); } if (motor == "vel6") { analogWrite(pwm6, regulador); } } } |
Diagrama en bloques en app inventor
Interface de la aplicación
Circuito Cuente H
Apoya a mi canal suscribiendote en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 muchos videos con código fuentes completos y diagramas.
[wysija_form id=”1″]