Mini Arduino Multi funktion styrenhet med LCD-skärm (9 / 16 steg)
Steg 9: Skiss att styra reläer med din hjärna
Denna skiss ändrades för att köra loopen snabbare... uppdateringsfrekvensen är ca 1,5 sekunder.
Kopiera den skiss nedan och klistra in det i Arduino IDE att verifiera och köra programmet.
Denna skiss skapades med hjälp av koden från adafruit och hjärnan-bibliotek
#define sclk 4
#define mosi 5
#define cs 6
#define dc 7
#define rst 8
GND ansluten till Arduino GND
int Pin1 = 9. In1 ansluten till digital 9
int Pin2 = 10; IN2 ansluten till digital 10
int Pin3 = 11; IN3 ansluten till digital 11
int Pin4 = 12. IN4 ansluten till digital 12
VCC ansluten till Arduino + 5v
#include < Adafruit_GFX.h > / / Core grafik bibliotek
#include < Adafruit_ST7735.h > / / maskinvaruspecifika bibliotek
#include < SPI.h >
#include < Brain.h >
Adafruit_ST7735 tft = Adafruit_ST7735 (cs, dc, mosi, sclk, rst);
Hjärnan brain(Serial);
void setup(void) {
tft.initR(INITR_BLACKTAB); initiera en ST7735S chip, svart flik
pinMode (Pin1, OUTPUT);
pinMode (PIN2-, OUTPUT);
pinMode (Pin3, OUTPUT);
pinMode (Pin4, OUTPUT);
digitalWrite (Pin1, 1);
digitalWrite (Pin2, 1);
digitalWrite (Pin3, 1);
digitalWrite (Pin4, 1);
tftPrintTest(); Inledande introduktion text,
Delay(1000);
tft.fillScreen(ST7735_BLACK); Rensa skärmen
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
tft.setCursor(30,0);
TFT.println ("hjärnan kontroll"),
Serial.BEGIN(9600);
}
void loop() {
om (brain.update()) {
om (brain.readSignalQuality() > 199) {
tft.fillScreen(ST7735_BLACK);
tft.setCursor(10,60);
tft.setTextSize(1);
tft.setTextColor(ST7735_RED,ST7735_BLACK);
TFT.println ("SQ låg");
tft.fillScreen(ST7735_BLACK);
}
annat {
tft.setCursor(30,0);
tft.setTextSize(1);
TFT.println ("hjärnan kontroll"),
tft.drawLine (0, 20, tft.width ()-1, 20, ST7735_WHITE);
tft.drawLine (0, 130, tft.width ()-1, 130, ST7735_WHITE);
tft.setCursor (0, 30);
tft.setTextColor(ST7735_YELLOW,ST7735_BLACK);
tft.setTextSize(1);
TFT.Print ("signal kvalitet:");
TFT.Print(Brain.readSignalQuality());
TFT.println("");
TFT.println("");
tft.setTextColor(ST7735_GREEN,ST7735_BLACK);
TFT.println ("uppmärksamhet:");
tft.setTextSize(2);
tft.setCursor (60, 60);
TFT.Print(Brain.readAttention());
TFT.println("");
tft.setTextColor(ST7735_WHITE,ST7735_BLACK);
tft.setTextSize(1);
TFT.println("");
TFT.Print ("Meditation:");
tft.setTextSize(2);
tft.setCursor (60, 100);
TFT.Print(Brain.readMeditation());
TFT.println("");
IF(Brain.readSignalQuality() == 0) {
tft.setCursor(0,140);
tft.setTextColor(ST7735_GREEN,ST7735_BLACK); Ange färg för tid ON
tft.setTextSize (1), //set textstorlek
TFT.Print ("Relay 1 är på");
digitalWrite (Pin1, 0);
}
annat {
tft.setCursor(0,140);
tft.setTextColor(ST7735_RED,ST7735_BLACK); Ange färg för tid OFF
tft.setTextSize (1), //set textstorlek
TFT.Print ("Relay 1 är");
digitalWrite (Pin1, 1);
}
}
IF(Brain.readAttention() > 50) {
tft.setCursor(0,75);
tft.setTextColor(ST7735_GREEN,ST7735_BLACK); Ange färg för tid ON
tft.setTextSize (1), //set textstorlek
TFT.Print ("Relay 2 är på");
digitalWrite (Pin2, 0);
}
annat {
tft.setCursor(0,75);
tft.setTextColor(ST7735_RED,ST7735_BLACK); Ange färg för tid OFF
tft.setTextSize (1), //set textstorlek
TFT.Print ("Relay 2 är");
digitalWrite (Pin2, 1);
}
IF(Brain.readMeditation() > 50) {
tft.setCursor(0,118);
tft.setTextColor(ST7735_GREEN,ST7735_BLACK); Ange färg för tid ON
tft.setTextSize (1), //set textstorlek
TFT.Print ("relä 3 är på");
digitalWrite (Pin3, 0);
}
annat {
tft.setCursor(0,118);
tft.setTextColor(ST7735_RED,ST7735_BLACK); Ange färg för tid OFF
tft.setTextSize (1), //set textstorlek
TFT.Print ("relä 3 är");
digitalWrite (Pin3, 1);
}}}
void tftPrintTest() {
tft.setTextWrap(false);
tft.fillScreen(ST7735_BLACK);
tft.setCursor (0, 10);
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
TFT.println ("
Delay(500);
tft.setCursor (30, 60);
tft.setTextColor(ST7735_RED);
tft.setTextSize(2);
TFT.println("Brain");
tft.setTextColor(ST7735_YELLOW);
tft.setCursor (5, 80);
TFT.println ("Controler");
tft.setTextColor(ST7735_BLUE);
Delay(50);
}