Sisällysluettelo:
Video: Arduino UNO (valikoiden ja toimintojen luominen): 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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:
Arduino -kilven luominen erittäin helpoksi (EasyEDA: n avulla): 4 vaihetta
Arduino Shieldin luominen erittäin helpoksi (EasyEDA: n avulla): Tässä opetusohjelmassa aion opettaa sinulle kuinka luoda Arduino Uno Shield erittäin helposti. mene hieman syvemmälle ohjelmiston käyttämiseen. Käytän EasyEDA -verkkosovellusta, koska olen
Kannettavan älypeilin luominen/meikkilaatikkoyhdistelmän luominen: 8 vaihetta
Kannettavan älypeilin luominen/meikkilaatikkoyhdistelmän luominen: Viimeisenä projektina Davisin & Elkinsin yliopisto, päätin suunnitella ja luoda meikkimatkalaukun sekä suuremman peilin ja käyttää vadelmapiä ja taikuuspeiliohjelmistoa, joka toimisi porttina
Erilaisten sävyjen luominen matemaattisilla yhtälöillä (MathsMusic) Arduino: 5 vaihetta
Erilaisten sävyjen luominen matemaattisten yhtälöiden avulla (MathsMusic) Arduino: Projektin kuvaus: Uusi matka on alkanut, jossa ideat voidaan helposti toteuttaa avoimen lähdekoodin yhteisön avulla (kiitos Arduinolle). Joten tässä on tapa · Katso ympärillesi ja tarkkaile ympäristöäsi · Löydä ongelmia, jotka on ratkaistava
Hälytysmaton luominen Arduino Megan avulla: 9 vaihetta
Kuinka luoda "hälytysmatto" Arduino Megan avulla: Meillä kaikilla on niitä aamuja, jolloin meillä on vaikeuksia nousta sängystä. Herätysääni jatkuu ja me lykkäämme torkkua kunnes … on liian myöhäistä! Olemme menettäneet kokouksen tai luokka on jo alkanut. Tämän ongelman torjumiseksi olemme luoneet
Bookhuddle.comin, verkkosivuston luominen kirjan tietojen löytämiseen, järjestämiseen ja jakamiseen, luominen: 10 vaihetta
Bookhuddle.comin, verkkosivuston luominen kirjan tietojen löytämiseen, järjestämiseen ja jakamiseen, luominen: Tässä viestissä kuvataan vaiheet, jotka liittyvät luomaan ja käynnistämään Bookhuddle.com -verkkosivusto, jonka tarkoituksena on auttaa lukijoita löytämään, järjestämään ja jakamaan kirjan tietoja. koskisi muiden verkkosivustojen kehittämistä