#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
#define TFT_DC 2 //D2
#define TFT_CS 3 //D3
#define PIN_BUTTON A1
#define PIN_TRIG A3
#define PIN_ECHO A2
#define vert A4
#define orange A5
#define rouge A0
#define BUZZER_PIN A5
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
void setup() {
Serial.begin(115200);
pinMode(BUZZER_PIN, OUTPUT); // Set the buzzer pin as an output
pinMode(PIN_BUTTON, INPUT);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
pinMode(rouge, OUTPUT);
pinMode(orange, OUTPUT);
pinMode(vert, OUTPUT);
//Serial.println("Hello, WOKWI");
tft.begin();
//tft.setCursor(20, 120);
//tft.setTextColor(ILI9341_RED);
//tft.setTextSize(3);
//tft.println("Hello STM2");
//tft.setCursor(24, 160);
//tft.setTextColor(ILI9341_GREEN);
//tft.setTextSize(2);
//tft.println("I can do SPI :-)");
}
void loop() {
int button_state=digitalRead(PIN_BUTTON) ;
if (button_state==LOW)
{
delay(10);
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
int duration = pulseIn(PIN_ECHO, HIGH);
float distance = duration / 58.0;
Serial.print("Distance in CM: ");
Serial.println(distance);
tft.setCursor(20, 120);
tft.setTextColor(ILI9341_RED);
tft.setTextSize(3);
tft.println("distance");
delay(500);
if(distance <= 30) {
tone(BUZZER_PIN, 440, 0);
digitalWrite(rouge, HIGH);
digitalWrite(orange, LOW);
digitalWrite(vert, LOW);
}
else if ((distance > 30 )&& (distance <= 120)) {
digitalWrite(rouge, LOW);
digitalWrite(orange, HIGH);
digitalWrite(vert, LOW);
int dur = map(distance - 30, 90, 0, 1000,0);
tone(BUZZER_PIN,440);
delay(200);
noTone(BUZZER_PIN);
digitalWrite(BUZZER_PIN, LOW);
delay(dur);
}
else if(distance > 120) {
digitalWrite(rouge, LOW);
digitalWrite(orange, LOW);
digitalWrite(vert, HIGH);
noTone(BUZZER_PIN);
}
}
}