1 год назад
История
README.md
Раздельный экологический сбор мусора
Основная часть
С помощью модели «экологический раздельный сбор мусора «EcologiBasket»», осуществляющего экопросветительскую деятельность на добровольной основе, способствующего формированию экологически ответственного поведения у подрастающего поколения за счет интерактивной подачи, НО это не главная задача макета, на нем мы практикуем автономный самовывоз при заполнении баков. Работать это будет следующим образом: датчики установленные ранее в баке при заполнении будут отображатся в спец службе, тем самым облегчив работу сотрудникам. У них будет отображатся: заполненость (чтоб грамотно составить маршрут обьезда), место, отсек с разновидностью мусора (для подбора машины)
Схема подключения
Подключение пинов Arduino:
Дисплей:
• const int trig = 5;
• const int echo = 4;
• NewPing sonar(trig, echo, 40);
• unsigned sm = sonar.ping_cm();
Кнопки:
• const int BUTTON_RED = 8;
• const int BUTTON_GREEN = 11;
Светодиоды:
• const int RED = 7;
• const int GREEN = 6;
Серво:
• myservo.attach(9);/home/user/ecologi-basket/photo/photo_2023-12-03_16-55-46.jpg
• myservo2.attach(10); <h4>
Переменные для подсчета мусора:
• int count;
• int count2;
Код
#include <Arduino.h>
#include <NewPing.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h> // Библиотека для работы с I2C экраном
LiquidCrystal_I2C lcd(0x27, 16, 2); // Устанавливаем дисплей
const int trig = 5;
const int echo = 4;
NewPing sonar(trig, echo, 40);
unsigned sm = sonar.ping_cm();
unsigned long timing;
Servo myservo;
Servo myservo2;
const int BUTTON_RED = 8;
const int BUTTON_BLUE = 11;
const int RED = 7;
const int GREEN = 6;
int count;
int count2;
void setup() {
pinMode(RED, OUTPUT); //red
pinMode(GREEN, OUTPUT); //green
pinMode(trig, OUTPUT);
lcd.init(); // Инициализация LCD
lcd.begin(16, 2); // Задаем размерность экрана
myservo.attach(9);
myservo2.attach(10);
}
void loop() {
bool buttonState = digitalRead(BUTTON_RED);
bool buttonState2 = digitalRead(BUTTON_BLUE);
sm = sonar.ping_cm();
if (sm > 0 && sm <= 10) {
sm = sonar.ping_cm();
delay(50);
if (buttonState == false && millis() > 3000) {
count++;
digitalWrite(RED, HIGH);
lcd.backlight(); // Включаем подсветку дисплея
lcd.clear(); // Очищаем экран перед получением нового значения
myservo2.write(photo/photo_2023-12-03_16-55-46.jpgphoto/photo_2023-12-03_16-55-46.jpg, 0); // курсор на 4-й символ 1-й строки
lcd.print("OPEN"); // Тест на 1-й строке экрана
delay(2000);
myservo2.write(20);
lcd.setCursor(4, 0); // курсор на 4-й символ 1-й строки
lcd.print("thank you");
delay(1500);
}
else if (buttonState2 == true && millis() > 3000) {
count2++;
digitalWrite(GREEN, HIGH);
lcd.backlight(); // Включаем подсветку дисплея
lcd.clear(); // Очищаем экран перед получением нового значения
myservo.write(180);
lcd.setCursor(6, 0); // курсор на 4-й символ 1-й строки
lcd.print("OPEN"); // Тест на 1-й строке экрана
delay(2000);
myservo.write(20);
lcd.setCursor(4, 0); // курсор на 4-й символ 1-й строки
lcd.print("thank you");
delay(1500);
}
else {
digitalWrite(RED, LOW);
digitalWrite(GREEN, LOW);
myservo.write(20);
myservo2.write(20);
lcd.backlight(); // Включаем подсветку дисплея
lcd.setCursor(0, 0); // курсор на 4-й символ 1-й строки
lcd.print("Throw the trash"); // Тест на 1-й строке экрана
lcd.setCursor(0, 1); // курсор на 4-й символ 1-й строки
lcd.print("paper"); // Тест на 1-й строке экрана
lcd.setCursor(5, 1); // курсор на 7-й символ 2-й строки
lcd.print(count); // Значения на 2-й строке экрана
lcd.setCursor(8, 1); // курсор на 4-й символ 1-й строки
lcd.print("plastic");
lcd.setCursor(15, 1); // курсор на 7-й символ 2-й строки
lcd.print(count2); // Значения на 2-й строке экрана
myservo.write(20);
myservo2.write(20);
}
}
else {
digitalWrite(RED, LOW);
digitalWrite(GREEN, LOW);
myservo.write(20);
myservo2.write(20);
lcd.noBacklight();
lcd.setCursor(0, 0); // курсор на 4-й символ 1-й строки
lcd.print("Throw the trash"); // Тест на 1-й строке экрана
lcd.setCursor(0, 1); // курсор на 4-й символ 1-й строки
lcd.print("paper"); // Тест на 1-й строке экрана
lcd.setCursor(5, 1); // курсор на 7-й символ 2-й строки
lcd.print(count); // Значения на 2-й строке экрана
lcd.setCursor(8, 1); // курсор на 4-й символ 1-й строки
lcd.print("plastic");
lcd.setCursor(15, 1); // курсор на 7-й символ 2-й строки
lcd.print(count2); // Значения на 2-й строке экрана
myservo.write(20);
myservo2.write(20);
}
}
Фото проекта
СПАСИБО ЗА ВНИМАНИЕ)
Описание
Конвейеры
0 успешных
0 с ошибкой