Sisällysluettelo:

Arduino UNO (valikoiden ja toimintojen luominen): 4 vaihetta
Arduino UNO (valikoiden ja toimintojen luominen): 4 vaihetta

Video: Arduino UNO (valikoiden ja toimintojen luominen): 4 vaihetta

Video: Arduino UNO (valikoiden ja toimintojen luominen): 4 vaihetta
Video: Learn Arduino in 30 Minutes: Examples and projects 2024, Heinäkuu
Anonim
Arduino UNO (valikoiden ja toimintojen luominen)
Arduino UNO (valikoiden ja toimintojen luominen)
Arduino UNO (valikoiden ja toimintojen luominen)
Arduino UNO (valikoiden ja toimintojen luominen)

Tässä ohjeessa tutkimme, kuinka luodaan valikoita, luetaan lämpötila TC74A0 -anturista ja näytetään "arvot" (tässä tapauksessa matkapuhelinnumerot) loputtomalla tavalla, mutta se rajoittuu arduinon sisäiseen muistiin.

Tulemme käyttämään

-Sarjat

-Nestekidenäyttö

-Näppäimistö

Käyttöopas sisältyy viimeiseen vaiheeseen.

Vaihe 1: Komponentit

Arduino Uno

· 4x4 -näppäimistö

· Digitaalinen lämpötila -anturi TC74A0

· I2c 16x2 LCD -moduuli

· 16x2 nestekidenäyttö

· Hyppyjohdot

· Leipälauta

· Henkilökohtainen tietokone

· Arduino IDE

· Siirtokaapeli

Vaihe 2: Komponenttijohdotus

LÄMPÖTILA -ANTURI JA LCD -SAMALLA KYTKETTY SDA JA SCL (A4, A5)

LCD (I2c -moduuli)

o SDA - A5 Arduinolla

o SCL -A4 Arduinolla

o VCC 5 V: iin Arduinolla

o GND - GND Arduinolla

· 4 x 4 näppäimistö

o Näppäimistön nastat 1 - 8 liitetty Arduinon nastoihin 9 - 2

TC74A0 lämpötila -anturi

o TC74A0 nasta 2 SDA: han Arduinossa

o TC74A0 -nasta 3 GND: hen Arduinossa

o TC74A0 nasta 4 SCL: ään Arduinossa

o TC74A0 -nasta 5–5 V Arduinolla

Vaihe 3: Koodi

#include // Sisältää kirjastot kääntämisen aikana

#sisältää

#sisältää

#define Password_Lenght 5

#define Command_Lenght 3

#define CellNumber 10

int käyttäjät = 0;

int Näyttö = 0;

int -osoite = 72; // tc74a0 OSOITE

int I = 0;

int USER;

int X = 0;

int XY = 0;

sisäinen lämpötila;

int tempPre = 0;

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

char Data [Password_Lenght];

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

char ExitData [Komento_pituus]; //

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

char MenuItem;

char CELLArrayA [10];

char CELLArrayB [10];

char CELLArrayC [10];

const tavu RIVIT = 4; // neljä riviä

const tavu COLS = 4; // neljä saraketta

tavu rowPins [ROWS] = {5, 4, 3, 2};

tavu colPins [COLS] = {9, 8, 7, 6};

tavutiedot_luku = 0, päälaskuri = 0;

bool Pass_is_good;

LiquidCrystal_I2C lcd (0x26, 16, 2);

char hexaKeys [RIVIT] [COLS] = // NÄPPÄIMISTÖN ALOITTAMINEN

{

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

};

Näppäimistö customKeypad = Näppäimistö (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

mitätön asennus ()

{

Sarja.alku (9600); // tämä luo sarjamonitorin

Wire.begin (); // tämä luo Wire -objektin

lcd. alku (16, 2);

lcd.taustavalo ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Odota 3"); // LATAUSNÄYTTÖ

viive (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Please Wait 2");

viive (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Odota 1");

viive (300);

lcd.clear ();

String myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

viive (2500);

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

{

lcd.scrollDisplayLeft ();

viive (300);

}

lcd.clear ();

lcd.print ("Anna salasana");

}

tyhjä silmukka ()

{

kytkin (Näyttö) // MISSÄ PÄÄVALIKOSSA OLEMME

{// PAINOITKO KÄYTTÄJÄ A, B, C, D

tapaus 0:

{

Salasana();

}

tauko;

tapaus 1:

{

lcd.clear ();

lcd.setCursor (0, 1);

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

lcd.setCursor (0, 0);

lcd.print ("Päävalikko");

Näyttö = 2;

viive (100);

tauko;

}

tapaus 2:

{

char customKey = customKeypad.getKey ();

kytkin (customKey)

{

tapaus 'A':

{

Serial.println ("A painettiin");

StoreUser ();

tauko;

}

tapaus 'B':

{

Serial.println ("B painettiin");

jos (käyttäjät == 0) {

lcd.clear ();

lcd.print ("EI TALLENNETTAVIA KÄYTTÄJIÄ");

viive (3000);

lcd.clear ();

Näyttö = 1;

tauko;

}

DisplayUsers (); tauko;

}

tapaus 'C':

{

Serial.println ("C painettiin"); // KÄYTETTY TESTAUKSEN AIKANA

int ext = 0;

while (! ext) {

char ch;

lämpötila = TempMenu ();

if (temp! = tempPre) {

lcd.clear ();

lcd.print ("Lämpötila");

lcd.setCursor (0, 1);

lcd.print (lämpötila);

lcd.print ("C");

tempPre = lämpötila;

viive (500);

}

ch = customKeypad.getKey ();

if (ch == ' *') // EXIT LÄMPÖTILAVALIKKO (jos * PAINETTU)

{

ext = 1;

lcd.clear ();

Näyttö = 1;

}

}

tauko;

TempMenu ();

tauko;

}

tapaus 'D':

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("NUA PRAC");

lcd.setCursor (0, 1);

lcd.print ("JB SCHOEMAN");

viive (3000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("TOUKOKUU 2019");

lcd.setCursor (0, 1);

lcd.print ("CC OOSTHUIZEN");

viive (3000);

lcd.clear ();

Näyttö = 1;

}

}

}

}

}

// MUKAUTETUT TOIMINNOT ARVOJEN TAI MENETTELYJEN KUTSEMISEKSI

mitätön salasana ()

{

char customKey = customKeypad.getKey ();

if (customKey) // varmistaa, että näppäintä todella painetaan, yhtä suuri kuin (customKey! = NO_KEY)

{

Data [data_count] = customKey; // tallenna char tietojoukkoon

lcd.setCursor (data_count, 1); // liikuta kohdistinta näyttääksesi kaikki uudet merkit

lcd.print ("*"); // tulosta char mainitulla kohdistimella

data_count ++; // lisää datamatriisi yhdellä tallentaaksesi uuden merkin, seuraa myös syötettyjen merkkien määrää

}

if (data_count == Password_Lenght-1) // jos taulukon indeksi on yhtä suuri kuin odotettujen merkkien määrä, vertaa tietoja masteriin

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Salasana on");

if (! strcmp (Data, Master)) // yhtä suuri kuin (strcmp (Data, Master) == 0)

{

lcd.print ("Hyvä");

lcd.clear ();

Näyttö = 1;

}

muu

lcd.print ("Huono");

delay (1000); // lisäsi 1 sekunnin viiveen varmistaakseen, että salasana näkyy kokonaan näytöllä ennen sen poistamista.

lcd.clear ();

Puhdas data();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Anna salasana");

}

}

int TempMenu ()

{

Wire.beginTransmission (osoite);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (osoite, 1);

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

int c = Wire.read ();

paluu c;

}

void clearData ()

{

samalla (data_count! = 0)

{// Tätä voidaan käyttää minkä tahansa kokoisille matriiseille, Tiedot [data_luku--] = 0; // tyhjennä matriisi uusille tiedoille

}

}

mitätön StoreUser ()

{

int ext = 0;

int käyttäjä;

char ch;

while (! ext) {

lcd.clear ();

lcd.print ("Anna käyttäjä");

käyttäjä = käyttäjät + 1;

lcd.print (käyttäjä);

int x = 0;

samalla (! x) {

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

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [käyttäjä - 1] = ch;

}

viive (500);

lcd.clear ();

lcd.print ("Jatka");

lcd.setCursor (0, 1);

lcd.print ("* kyllä # ei");

ch = customKeypad.waitForKey ();

jos (ch == '*') {

x = 1;

}

jos (ch == '#') {

x = 1;

ext = 1;

lcd.clear ();

Näyttö = 1;

}

}

käyttäjät ++;

}

}

mitätön DisplayUsers ()

{

lcd.clear ();

(int i = 0; i <käyttäjät; i ++) {

lcd.print ("Tallennettu käyttäjä");

lcd.print (i + 1);

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

lcd.setCursor (u, 1);

lcd.print (userNum [u]);

}

viive (2000);

lcd.clear ();

Näyttö = 1;

}

}

Vaihe 4: KÄYTTÖOPAS

1. Kun projekti käynnistetään, lataus- tai tervetulonäyttö tulee näkyviin.

2. Näkyviin tulee “Anna salasana” -näyttö, jossa voit syöttää 4 merkkiä, kirjainta tai numeroa, oikea salasana on: 5466, jolloin pääset päävalikkoon.

3. Kun olet syöttänyt oikean salasanan, päävalikko tulee näkyviin ja 4 mahdollista vaihtoehtoa navigoida eri käytettävissä olevissa toiminnoissa.

· A - Anna käyttäjän matkapuhelinnumerot.

o Kirjoita 10 numeroa käyttäjän tallentamiseksi järjestelmään

o Kun olet syöttänyt 10 numeroa, lisää “*” lisätäksesi käyttäjiä tai paina “#” poistuaksesi takaisin päävalikkoon

· B - Näytä tallennetut käyttäjät

o Käyttäjät vierivät näytön ohi, ne näytetään 3 sekunnin ajan, heti kun kaikki käyttäjät ovat näkyvissä, sivu sulkeutuu ja palaa päävalikkoon.

o Jos valikkovaihtoehtoon A ei ole lisätty käyttäjiä, näytössä näkyy teksti”NO SAVED USERS”.

· C - Näyttää elävän lämpötilan

o Palaa päävalikkoon painamalla “*”

· D - Näytä lyhyt teksti

o Näyttää luojan nimen ja aiheen, jolle se on koottu, päivämäärän kanssa.

Suositeltava: