
- LCD
- HC-SR04 (sensor ultrasónico)
- M35SP-9 (motor paso-paso) o un servomotor
- Soldador y alicates
MONTAJE:
VÍDEO DE FUNCIONAMIENTO:
[youtube=http://www.youtube.com/watch?v=0XQ90UGqRHY&w=770]
MODIFICACIÓN AL STEPPER:
Soldamos patillas a los bornes para pincharlas en protoboard.
Para saber el orden en que debemos conectar los polos de nuestro motor prodecemos de la siguiente forma:
- Conectamos gnd al negativo de una fuente de alimentacion.
- Vamos probando con el positivo en los distintos pines hasta que consigamos que avance sin retroceder al tocar alguno de ellos.
MODIFICACIÓN AL HC-SR04:
Lo más cómodo es utilizar un conector VGA.
Utilizamos conectores más finos para el sensor ya que el motor paso a paso no tiene suficiente fuerza para vencer la fuerza de unos cables gruesos.
CÓDIGO:
//Variables LCD
#include
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);
//Variables ULTRASONIDOS
#include “Ultrasonic.h”
Ultrasonic ultrasonic(6,7);
int dist;
//Variables STEPPER
int DelayTime=50;
int MP[] = {10, 11, 12, 13};
int n=0;
int NP;
int i;
//DIBUJOS DEL LCD+++++++++++++++++++++++++++++++++++++++++++++++++
byte CERO[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000
};
byte UNO[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B11111
};
byte DOS[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B11111,
B11111
};
byte TRES[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B11111,
B11111,
B11111
};
byte CUATRO[8] = {
B00000,
B00000,
B00000,
B00000,
B11111,
B11111,
B11111,
B11111
};
byte CINCO[8] = {
B00000,
B00000,
B00000,
B11111,
B11111,
B11111,
B11111,
B11111
};
byte SEIS[8] = {
B00000,
B00000,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
byte SIETE[8] = {
B00000,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
byte OCHO[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
void setup() {
lcd.createChar(0,CERO);
lcd.createChar(1,UNO);
lcd.createChar(2,DOS);
lcd.createChar(3,TRES);
lcd.createChar(4,CUATRO);
lcd.createChar(5,CINCO);
lcd.createChar(6,SEIS);
lcd.createChar(7,SIETE);
lcd.createChar(8,OCHO);
lcd.begin(16, 2);
//pines del stepper
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
//GIRA HACIA UN LADO
for(i=0;i400) lcd.write(8);
//el cursor se desplaza a la derecha
lcd.setCursor(i,0);
}
n=0;
}
//GIRA HACIA EL OTRO LADO
for(i=0;i-1){
NP=MP[n];
digitalWrite(NP,HIGH);
delay(DelayTime);
digitalWrite(NP,LOW);
delay(DelayTime);
n-=1;
//lectura ultrasonido
dist=ultrasonic.Ranging(CM);
//imprime byte
if (dist400) lcd.write(8);
//el cursor se desplaza a la derecha
lcd.setCursor(i,0);
}
n=3;
}
}