Obsah:

Arduino UNO (vytváranie ponúk a funkcií): 4 kroky
Arduino UNO (vytváranie ponúk a funkcií): 4 kroky

Video: Arduino UNO (vytváranie ponúk a funkcií): 4 kroky

Video: Arduino UNO (vytváranie ponúk a funkcií): 4 kroky
Video: LDmicro 21: настройка режима C и Arduino Mega (программирование микроконтроллера с помощью LDmicro) 2024, Júl
Anonim
Arduino UNO (vytváranie ponúk a funkcií)
Arduino UNO (vytváranie ponúk a funkcií)
Arduino UNO (vytváranie ponúk a funkcií)
Arduino UNO (vytváranie ponúk a funkcií)

V tomto návode sa budeme zaoberať tým, ako vytvárať ponuky, čítať teplotu zo snímača TC74A0 a zobrazovať „hodnoty“(v tomto prípade čísla mobilných telefónov) spôsobom, ktorý je nekonečný, ale obmedzený na arduino palubnú pamäť.

Budeme používať

-Polia

-Displej z tekutých kryštálov

-Klávesnica

Používateľská príručka je súčasťou posledného kroku.

Krok 1: Komponenty

Arduino Uno

· Klávesnica 4x4

· Digitálny snímač teploty TC74A0

· Modul LCD I2c 16x2

· Displej z tekutých kryštálov 16x2

· Prepojovacie vodiče

· Breadboard

· Osobný počítač

· Arduino IDE

· Prenosový kábel

Krok 2: Zapojenie komponentov

TEPLOTNÝ SENZOR A LCD PRIPOJENÉ NA TOMTO RIADKU K SDA A SCL (A4, A5)

LCD (modul I2c)

o SDA až A5 na Arduino

o SCL na A4 na Arduino

o VCC až 5V na Arduino

o GND až GND na Arduino

· Klávesnica 4 x 4

o Pin 1 - 8 na klávesnici pripojený k pinom 9 - 2 na Arduine

Snímač teploty TC74A0

o TC74A0 pin 2 na SDA na Arduino

o TC74A0 pin 3 na GND na Arduino

o TC74A0 pin 4 do SCL na Arduine

o TC74A0 pin 5 až 5V na Arduino

Krok 3: Kód

#include // Zahŕňa knižnice pri kompilácii

#zahrnúť

#zahrnúť

#define Heslo_dĺžka 5

#define Command_Lenght 3

#define CellNumber 10

int užívatelia = 0;

int zobrazenie = 0;

int adresa = 72; // tc74a0 ADRESA

int I = 0;

int UŽÍVATEĽ;

int X = 0;

int XY = 0;

int temp;

int tempPre = 0;

char userNum [10] [10] = {{}, {}, {}};

char dáta [heslo_dĺžky];

char Master [Password_Lenght] = "5466"; // HESLO

char ExitData [Command_Lenght]; //

char Master1 [Command_Lenght] = "**"; //

char MenuItem;

char CELLArrayA [10];

char CELLArrayB [10];

char CELLArrayC [10];

konštantný bajt ROWS = 4; // štyri riadky

konštantný bajt COLS = 4; // štyri stĺpce

bajtové riadky [ROWS] = {5, 4, 3, 2};

bajtové stĺpce [COLS] = {9, 8, 7, 6};

bajt data_count = 0, master_count = 0;

bool Pass_is_good;

LiquidCrystal_I2C lcd (0x26, 16, 2);

char hexaKeys [ROWS] [COLS] = // INICIATING KEYPAD

{

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}

};

Keypad customKeypad = Keypad (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

neplatné nastavenie ()

{

Serial.begin (9600); // toto vytvorí sériový monitor

Wire.begin (); // toto vytvorí objekt Wire

lcd.begin (16, 2);

lcd.backlight ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print („Počkajte prosím 3“); // NAKLADACIA OBRAZOVKA

oneskorenie (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print („Počkajte prosím 2“);

oneskorenie (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print („Počkajte prosím 1“);

oneskorenie (300);

lcd.clear ();

Reťazec myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

oneskorenie (2500);

pre (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)

{

lcd.scrollDisplayLeft ();

oneskorenie (300);

}

lcd.clear ();

lcd.print ("Zadajte heslo");

}

prázdna slučka ()

{

prepínač (Displej) // KDE V HLAVNOM MENU SME MY

{// UŽÍVATEĽ STLAČIL A, B, C, D

prípad 0:

{

Heslo ();

}

prestávka;

prípad 1:

{

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("A B C D");

lcd.setCursor (0, 0);

lcd.print („Hlavné menu“);

Displej = 2;

oneskorenie (100);

prestávka;

}

prípad 2:

{

char customKey = customKeypad.getKey ();

prepínač (customKey)

{

prípad „A“:

{

Serial.println ("A bolo stlačené");

StoreUser ();

prestávka;

}

prípad „B“:

{

Serial.println („B bolo stlačené“);

if (users == 0) {

lcd.clear ();

lcd.print („BEZ ULOŽENÝCH UŽÍVATEĽOV“);

oneskorenie (3000);

lcd.clear ();

Displej = 1;

prestávka;

}

Používatelia displeja (); prestávka;

}

prípad „C“:

{

Serial.println ("C bolo stlačené"); // POUŽÍVANÉ POČAS TESTOVANIA

int ext = 0;

while (! ext) {

char ch;

temp = TempMenu ();

if (temp! = tempPre) {

lcd.clear ();

lcd.print ("teplota");

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print ("C");

tempPre = temp;

oneskorenie (500);

}

ch = customKeypad.getKey ();

if (ch == ' *') // EXIT TEMPERATURE MENU (if * PRESSED)

{

ext = 1;

lcd.clear ();

Displej = 1;

}

}

prestávka;

TempMenu ();

prestávka;

}

prípad „D“:

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print („NUA PRAC“);

lcd.setCursor (0, 1);

lcd.print ("JB SCHOEMAN");

oneskorenie (3000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print („MÁJ 2019“);

lcd.setCursor (0, 1);

lcd.print („CC OOSTHUIZEN“);

oneskorenie (3000);

lcd.clear ();

Displej = 1;

}

}

}

}

}

// VLASTNÉ FUNKCIE NA ZVOLANIE HODNOT ALEBO POSTUPOV

zrušiť heslo ()

{

char customKey = customKeypad.getKey ();

ak (customKey) // zaistí, že je kláves skutočne stlačený, rovná sa (customKey! = NO_KEY)

{

Údaje [data_count] = customKey; // uloženie znaku do poľa údajov

lcd.setCursor (data_count, 1); // pohyb kurzora zobrazí každú novú značku

lcd.print ("*"); // vytlačenie znaku na uvedenom kurze

data_count ++; // prírastok dátového poľa o 1, aby sa uložili nové znaky, tiež sledujte počet zadaných znakov

}

if (data_count == Password_Lenght-1) // ak je index poľa rovný počtu očakávaných znakov, porovnajte údaje s predlohou

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print („Heslo je“);

if (! strcmp (Data, Master)) // rovná sa (strcmp (Data, Master) == 0)

{

lcd.print („dobrý“);

lcd.clear ();

Displej = 1;

}

inak

lcd.print („zlý“);

delay (1000); // pridané 1sekundové oneskorenie, aby sa zabezpečilo úplné zobrazenie hesla na obrazovke skôr, ako bude vymazané.

lcd.clear ();

zmazať dáta();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Zadajte heslo");

}

}

int TempMenu ()

{

Wire.beginTransmission (adresa);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (adresa, 1);

while (Wire.available () == 0);

int c = Wire.read ();

návrat c;

}

void clearData ()

{

while (data_count! = 0)

{// Toto je možné použiť pre akúkoľvek veľkosť poľa, Údaje [počet_údajov--] = 0; // vymazanie poľa pre nové údaje

}

}

zrušiť StoreUser ()

{

int ext = 0;

int užívateľ;

char ch;

while (! ext) {

lcd.clear ();

lcd.print („Zadajte používateľa“);

užívateľ = užívatelia + 1;

lcd.print (používateľ);

int x = 0;

while (! x) {

pre (int i = 0; i <10; i ++) {

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [užívateľ - 1] = ch;

}

oneskorenie (500);

lcd.clear ();

lcd.print („Pokračovať“);

lcd.setCursor (0, 1);

lcd.print ("* áno # nie");

ch = customKeypad.waitForKey ();

if (ch == '*') {

x = 1;

}

if (ch == '#') {

x = 1;

ext = 1;

lcd.clear ();

Displej = 1;

}

}

užívatelia ++;

}

}

zrušiť DisplayUsers ()

{

lcd.clear ();

pre (int i = 0; i <používateľov; i ++) {

lcd.print („uložený používateľ“);

lcd.print (i + 1);

pre (int u = 0; u <10; u ++) {

lcd.setCursor (u, 1);

lcd.print (userNum [u]);

}

oneskorenie (2000);

lcd.clear ();

Displej = 1;

}

}

Krok 4: PRÍRUČKA POUŽÍVATEĽA

1. Po zapnutí projektu sa zobrazí obrazovka načítania alebo uvítacia obrazovka.

2. Zobrazí sa obrazovka „Enter Password“, ktorá vám umožňuje zadať 4 znaky, písmená alebo čísla, správne heslo je: 5466, čím získate prístup do hlavnej ponuky.

3. Po zadaní správneho hesla sa zobrazí hlavná ponuka so 4 možnými možnosťami navigácie v rôznych dostupných funkciách.

· A - Zadajte telefónne čísla používateľov.

o Zadajte 10 číslic, aby sa užívateľ uložil do systému

o Po zadaní 10 číslic stlačte „ *“, ak chcete pridať ďalších používateľov, alebo stlačením „#“sa vráťte späť do hlavnej ponuky

· B - Zobrazenie uložených používateľov

o Používatelia sa budú posúvať po obrazovke, každý sa zobrazí na 3 sekundy, akonáhle sa zobrazia všetci používatelia, stránka sa zatvorí a vráti sa do hlavnej ponuky.

o Pokiaľ v ponuke A neboli pridaní žiadni užívatelia, zobrazí sa „NO SAVED USERS“.

· C - Zobrazuje živú teplotu

o Stlačením „ *“sa vrátite do hlavnej ponuky

· D - Zobrazenie krátkeho textu

o Zobrazuje meno autora a predmet, pre ktorý bol zostavený, s dátumom.

Odporúča: