hasibkyau / Scorpion_2.0_The_Line_Follower_Robot

Line Follwer Robot Version 2
2 stars 0 forks source link

Use OLED display to show the Sensor data and the Default mood #17

Closed hasibkyau closed 2 years ago

hasibkyau commented 2 years ago
hasibkyau commented 2 years ago

`#include

include "SSD1306Wire.h"

//OLED related variables

define OLED_ADDR 0x3c

define OLED_SDA 21//4 //TTGO board without SD Card has OLED SDA connected to pin 4 of ESP32

define OLED_SCL 22//15 //TTGO board without SD Card has OLED SCL connected to pin 15 of ESP32

SSD1306Wire display(OLED_ADDR, OLED_SDA, OLED_SCL);

int SRT = 13, SRE = 12, SLT = 2, SLE = 0; // for Sonar sensors

define touch_pin_numer T0

const int LED_PIN_NUMBER = 22; const int VALUE_THRESHOLD = 30; int TOUCH_SENSOR_VALUE, dt = 1;

HCSR04 SonarR(SRT, SRE); //Right Sonor - initialisation class HCSR04 (trig pin - input , echo pin - output) HCSR04 SonarL(SLT, SLE); //Left Sonor - initialisation class HCSR04 (trig pin - input , echo pin - output)

void setup() { Serial.begin(115200); delay(100); Intro("RoboSquad ", "KYAU, CSE", "Loading..."); delay(1000); }

void loop() { TOUCH_SENSOR_VALUE = touchRead(touch_pin_numer); if (TOUCH_SENSOR_VALUE < VALUE_THRESHOLD) { (dt==1)? dt = 0: dt = 1; }

int rw = SonarR.dist(); int lw = SonarL.dist(); Serial.print(" :RightWall= "); Serial.print(rw); Serial.print(" :LeftWall="); Serial.println(lw);

// put your main code here, to run repeatedly showOLEDMessage(String(5), String(1), String(rw), String(lw), "dt:", String(dt)); // (int AIR, int FronIR, int right_sonar, int left_sonar, stirng "default turn" delay(200);

}

void showOLEDMessage(String line1a, String line1b, String line2a, String line2b, String line3a, String line3b) { display.init(); // clears screen display.setFont(ArialMT_Plain_16); display.drawString(0, 0, line1a); display.drawString(64, 0, line1b);// adds to buffer display.drawString(0, 20, line2a); display.drawString(64, 20, line2b); display.drawString(0, 40, line3a); display.drawString(64, 40, line3b); display.display(); // displays content in buffer }

void Intro(String line1, String line2, String line3) { display.init(); // clears screen display.setFont(ArialMT_Plain_16); display.drawString(0, 0, line1); // adds to buffer display.drawString(0, 20, line2); display.drawString(0, 40, line3); display.display(); // displays content in buffer }`

hasibkyau commented 2 years ago

Driver for OLED : https://www.arduino.cc/reference/en/libraries/esp8266-and-esp32-oled-driver-for-ssd1306-displays/