Siguen las pruebas con Arduino, y algo que quería hacer para hoy (el rato suelto que he tenido esta tarde), era unir los dos tutoriales que había visto de:
- Motor Stepper: un motor pequeño que puede controlar por pasos, no es rápido pero es preciso a la hora de sacar ángulos, o decirle que avance tantos pasos.
- Distanciómetro: permite medir distancias, pone que hasta 5 metros (precisión ya es otra cosa).
El objetivo era unirlos para hacer un escaner. Que el motor vaya girando desde un punto y midiendo ángulos y distancias, hasta que complete la vuelta entera. Y por ahora parece que algo funciona.
Las bases son: va girando sobre si mismo, espera un segundo, toma angulo y distancia, espera otro segundo, y se repite el proceso. Creo que son 2000 steps una vuelta entera del motor, pensando en ángulos topográficos que se miden sobre 400º el circulo entero, cada paso que da sería de 5 steps del motor.
Creo que el motor ahora lo tengo trabajando por debajo de su potencia.. mañana probare en ponerle alimentación externa y buscarle una base más firme.
Código:
#include <Stepper.h> // change this to the number of steps on your motor #define STEPS 2000 // create an instance of the stepper class, specifying // the number of steps of the motor and the pins it's // attached to Stepper myStepper(STEPS, 8, 9, 10, 11); //Ultrasonic #include <Ultrasonic.h> Ultrasonic ultrasonic(7,6, 300000); // (Trig PIN,Echo PIN) int distancia; // the previous reading from the analog input int stepCount = 0; int angle = 0; //400 es 2000, 5steps por grado de 400 void setup() { // set the speed of the motor to 30 RPMs myStepper.setSpeed(300); Serial.begin(9600); } void loop() { // move a number of steps equal to the change in the // sensor reading myStepper.step(5); Serial.print("steps:"); Serial.print(stepCount); stepCount++; delay(1000); distancia=ultrasonic.Ranging(CM); Serial.print(", dist: "); Serial.print(distancia); Serial.println(" cm"); delay(1000); }
¡Tiembla Leica! :D
Deja una respuesta