Paso 3: Conexión y codificación.
Conecte las piezas a la Junta como en la imagen y la junta al PC.
Abra su programa de codificación y comience la codificación.
En primer lugar definir las variables globales y los componentes necesarios.
#define echoPin 7 #define trigPin 8 #define LEDPin 13 #include #include "rgb_lcd.h" #include const int chipSelect = 4;rgb_lcd lcd;const int colorR = 255; const int colorG = 255; const int colorB = 255;int maximumRange = 400; int minimumRange = 0; long duration, distance; const int pinButton = 3;
Luego empezar con void setup.
Serie abierta con Serial.begin(115200); y la pantalla LCD y los colores. luego ajuste el pasador gatillo y Eco para el censor de distancia. Por último, seleccione la tarjeta SD para guardar los datos.
void setup() { Serial.begin (115200); pinMode(pinButton, INPUT); lcd.begin(16, 2); lcd.setRGB(colorR, colorG, colorB); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(LEDPin, OUTPUT); Serial.print("Start write to card."); if (!SD.begin(chipSelect)) { Serial.println("No card or failure"); return; } Serial.println("Card found"); }
A continuación, empezar a trabajar con Void loop.
Este es el programa principal que se bucle hasta el infinito.
El pasador de gatillo envía el ultrasonido y el sonido se vuelve al pin eco. Esto puede calcularse mediante el uso de la velocidad del sonido. Distancia = duración/58.2.
digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); //Calculate distance based on speed of sound distance = duration/58.2; lcd.clear();
Si la distancia está fuera del alcance, que el programa escribirá "fuera de rango" en la LCD y el monitor serial
Otra cosa será calcular la distancia de cada 150 ms e imprimirlo.
if (distance >= maximumRange || distance <= minimumRange){ Serial.println("Out of range"); lcd.setCursor(0,0); lcd.print("Out of range"); digitalWrite(LEDPin, HIGH); } else { Serial.println(distance); lcd.print(distance); lcd.setCursor(3,0); lcd.print("Cm"); digitalWrite(LEDPin, LOW); }
Si se pulsa el botón el programa abrir la tarjeta SD y buscar el archivo Distance.txt y guardar la distancia actual en el registro. Esto puede verse más adelante en un PC.
El comando también girará la pantalla verde por 2 segundos y muestran la distancia guardada.
Cuando se realizan 2 segundos, el programa continuará su tarea principal. Medición de distancia.
if(digitalRead(pinButton)) { File dataFile = SD.open("Distance.txt", FILE_WRITE); const int colorR = 0; const int colorG = 255; const int colorB = 0; if (dataFile) { dataFile.println(distance); dataFile.close(); lcd.setCursor(0,1); lcd.print("Saved to SD card."); Serial.println("saved to SD card."); lcd.setRGB(colorR, colorG, colorB); delay(2000); const int colorR = 255; const int colorG = 255; const int colorB = 255; lcd.setRGB(colorR, colorG, colorB); } } delay(150); }