//Enviar datos con modulo Bluetooth para Arduino http://zygzax.com/
1. #include <SoftwareSerial.h> 2. SoftwareSerial blue(2, 3); 3. int pot=0; 4. void setup(){ 5. blue.begin(9600); 6. blue.println("Conectado"); 7. } 8. void loop(){ 9. pot=analogRead(0); 10. blue.println(pot); 11. delay(1000); 12. } Recibir Datos 1. //Recibir datos con modulo Bluetooth para Arduino http://zygzax.com/ 2. #include <SoftwareSerial.h> 3. char rec; 4. SoftwareSerial blue(2,3); 5. void setup(){ 6. pinMode(13,OUTPUT); 7. blue.begin(9600); 8. blue.println("Conectado"); 9. } 10. void loop() { 11. if(blue.available()){ 12. rec=blue.read(); 13. switch(rec){ 14. case '0': 15. digitalWrite(13,LOW); 16. delay(500); 17. blue.println("Led off"); 18. break; 19. case '1': 20. digitalWrite(13,HIGH); 21. delay(500); 22. blue.println("Led on"); 23. break; 24. default: 25. delay(500); 26. blue.print(rec); 27. blue.println(" no es una orden valida. Introduzca 0 o 1"); 28. } 29. } 30. } SERVOMOTORES Antes de nada, mencionar los elementos necesarios para completar este tutorial, todos disponibles en la tienda: -Arduino Duemilanove o Arduino Mega (El que se usar en este tutorial) -Servomotor/es (En este caso he usado un servomotor miniaturizado, por su reducido consumo de energia, apto para arduino) -Cables M/M para conexin facil, fiable y flexible entre Arduino, ProtoBoard y Servo, aunque recomiendo cojer el pack de 100, por un precio asequible y no tener que andar estirando nunca mas (Pack de 100 cables premium M/M) -Placa de protipado (Si no se dispone ya de una) Si tenemos todo esto, es el momento de empezar a montar... Pero antes un poco de teoria sobre servomotores. La interfaz de conexin del servomotor consta normalmente de 3 cables o conductores, generalmente de 3 colores distintos,a saber: -Rojo -Marrn o Negro -Azul, Amarillo u otros Donde por norma general el cable Rojo es el positivo o fase, el Marrn o Negro es el tierra o masa, y el restante de varios posibles colores es el seal, que nos permitir controlar el servomotor con precisin. Normalmente el seal de controla con PWM, osea pulsos de ancho modular, con los que podemos mover con precisin el servomotor a cualquier punto de su radio de acin. Y como podemos provocar dichos pulsos? Pues muy sencillo usando uno de los pines marcados como PWM en arduino. Vamos pus a conectar nuestro servo con arduino:
Tal como se observa en el grfico, se conecta el servo al positivo que nos da arduino, y al GND tmabin proporcionado por nuestro arduino, y por ultimo conectamos el seal (amarillo) al pin numero 2, marcado como PWM. Si mas o menos te has enterado de lo explicado ya estars deduciendo como va a funcionar :) Ahora vamos crear un codigo que nos permita mover el servomotor, asi que atentos:
view plaincopy to clipboardprint? 1. #include <Servo.h> 2. 3. Servo servo1; // Crea un Objeto servo 4. int posicion; // Variable de la posicion del servo 5. 6. void setup() 7. { 8. servo1.attach(2); // Selecionamos el pin 2 como el pin de contro l para els ervo 9. } 10. 11. void loop() 12. { 13. 14. posicion = 150; // Establecemos el valor de la p osicion a 150 15. posicion = map(posicion, 0, 1023, 0, 179); // Establece mos la relacion entre los grados de giro y el PWM 16. /* Con el mapa de valores anterior establecemos una relacin proporcional */ 17. /* entre el pulso minimo 0 con el grado minimo, 0 tambien y el pulso maximo*/ 18. /* 1023 con el grado maximo, 179*/ 19. servo1.write(posicion); // Escribimos la p osicion con el mapa de valores al servo 20. delay(150); // Y le damos un tiem po para que sea capaz de moverse 21. }
Como veis, no es especialmente dificil, solo hace falta tener las cosas claras. Conectamos nuestro arduino al usb del pc, cargamos este programa con las conexiones especificadas anteriormente y moveremos nuestro servo a la posicion 150