// Подключаем библиотеку для работы с LCD
#include <LiquidCrystal.h>
#include "spider_diod.h"
// Инициализируем объект-экран, передаём использованные
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
float m;
const int led_red = 4;
const int led_grn = 5;
const int led_blu = 6;
SpiderLED * spider;
// Функция чтения данных с датчика
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT); // сброс Trig
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH); // установка TRIG на 10 мкс
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT); // измерение длительности ECHO
return pulseIn(echoPin, HIGH);
}
void setup()
{
spider = new SpiderLED(led_red, led_grn, led_blu);
spider->next_state(0);
spider->set_mod(0);
spider->update_state();
lcd.begin(16, 2);
lcd.clear();
}
void loop()
{
m = ( readUltrasonicDistance(3, 2) / 58 ) / 100;
if (m <= 4 && m >= 2)
{
spider->set_mod(0);
spider->next_state(6);
}
else if (m >= 1 && m < 2)
{
spider->set_mod(2);
spider->next_state(2);
}
else if (m < 1)
{
spider->set_mod(4);
spider->next_state(3);
}
lcd.setCursor(0,0);
lcd.print(" DISTANCE (m)");
lcd.setCursor(1,1);
lcd.print(m);
lcd.setCursor(14,1);
delay(100);
lcd.clear();
}