
Orodha ya maudhui:
2025 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2025-01-23 15:11


Katika mafunzo haya tutachunguza jinsi ya kuunda menyu, kusoma joto kutoka kwa sensa ya TC74A0 na kuonyesha "maadili" (katika kesi hii nambari za rununu) kwa njia ambayo haina mwisho, lakini imepunguzwa kwa kumbukumbu ya arduino kwenye bodi.
Tutatumia
-Kukosea
Maonyesho ya kioo ya maji
-Kipuni
Mwongozo wa mtumiaji umejumuishwa katika hatua ya mwisho.
Hatua ya 1: Vipengele
Arduino Uno
Kitufe cha 4x4
· TC74A0 sensorer ya joto ya dijiti
· Moduli ya LCD ya I2c 16x2
· 16x2 kioevu kioo kuonyesha
· Nyaya za jumper
· Bodi ya mkate
· Kompyuta binafsi
· Arduino IDE
· Hamisha kebo
Hatua ya 2: Wiring ya Sehemu
SENSOR YA TEMP NA LCD IMEUNGANISHWA KWENYE MSTARI HUOO KWA SDA NA SCL (A4, A5)
LCD (Moduli ya I2c)
o SDA hadi A5 kwenye Arduino
o SCL hadi A4 kwenye Arduino
o VCC hadi 5V kwenye Arduino
o GND kwa GND kwenye Arduino
· 4 x 4 Keypad
o Bandika 1 - 8 kwenye keypad iliyounganishwa na kubandika 9 - 2 kwenye Arduino mtawaliwa
Sensor ya muda ya TC74A0
o TC74A0 pini 2 kwa SDA kwenye Arduino
o TC74A0 pini 3 hadi GND kwenye Arduino
o TC74A0 pini 4 hadi SCL kwenye Arduino
o TC74A0 pini 5 hadi 5V kwenye Arduino
Hatua ya 3: Kanuni
# pamoja na // Inajumuisha maktaba wakati wa kukusanya
# pamoja
# pamoja
#fafanua Nenosiri_Lenght 5
#fafanua Amri_Lenght 3
#fafanua Nambari ya Kiini 10
watumiaji ndani = 0;
Kuonyesha int = 0;
anwani ya int = 72; // tc74a0 ANWANI
int I = 0;
int USER;
int X = 0;
int XY = 0;
muda;
int tempPre = 0;
char userNum [10] [10] = {{}, {}, {}};
data ya char [Nenosiri_Lenght];
char Mwalimu [Nenosiri_Lenght] = "5466"; // NENO
char ExitData [Amri_Lenght]; //
char Master1 [Command_Lenght] = "**"; //
char MenuItem;
char CELLArrayA [10];
char CELLArrayB [10];
char CELLArrayC [10];
const byte ROWS = 4; // safu nne
const byte COLS = 4; // nguzo nne
Pini za baiti [ROWS] = {5, 4, 3, 2};
Polls byte [COLS] = {9, 8, 7, 6};
data_ hesabu = 0, hesabu_nambari = 0;
bool Pass_is_good;
LiquidCrystal_I2C LCD (0x26, 16, 2);
char hexaKeys [ROWS] [COLS] = // INITIATING KEYPAD
{
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}
};
Keypad customKeypad = Keypad (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);
kuanzisha batili ()
{
Kuanzia Serial (9600); // hii inaunda Monitor Monitor
Wire.begin (); // hii inaunda kitu cha waya
lcd kuanza (16, 2);
lcd taa ya nyuma ();
lcd wazi ();
lcd.setCursor (0, 0);
lcd.print ("Tafadhali Subiri 3"); // KIWANGO CHA KUPakia
kuchelewesha (1000);
lcd wazi ();
lcd.setCursor (0, 0);
lcd.print ("Tafadhali Subiri 2");
kuchelewesha (1000);
lcd wazi ();
lcd.setCursor (0, 0);
lcd.print ("Tafadhali Subiri 1");
kuchelewesha (300);
lcd wazi ();
Kamba myString = "ARDUINO INSTRUCTABLE";
lcd.setCursor (2, 2);
lcd.print (myString);
kuchelewesha (2500);
kwa (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)
{
lcd.scrollDisplayLeft ();
kuchelewesha (300);
}
lcd wazi ();
lcd.print ("Ingiza Nenosiri");
}
kitanzi batili ()
{
badilisha (Onyesha) // WAPI MENU KUU TUPO
{// JE, MTUMIAJI HABARI A, B, C, D
kesi 0:
{
Nenosiri ();
}
kuvunja;
kesi 1:
{
lcd wazi ();
lcd.setCursor (0, 1);
lcd.print ("A B C D");
lcd.setCursor (0, 0);
lcd.print ("Menyu kuu");
Onyesha = 2;
kuchelewesha (100);
kuvunja;
}
kesi 2:
{
char customKey = customKeypad.getKey ();
kubadili (customKey)
{
kesi 'A':
{
Serial.println ("A ilibonyezwa");
Duka la Mtumiaji ();
kuvunja;
}
kesi 'B':
{
Serial.println ("B ilibonyezwa");
ikiwa (watumiaji == 0) {
lcd wazi ();
lcd.print ("HAKUNA WATUMIAJI WALIOOKOA");
kuchelewesha (3000);
lcd wazi ();
Onyesha = 1;
kuvunja;
}
Watumiaji wa Maonyesho (); kuvunja;
}
kesi 'C':
{
Serial.println ("C ilibonyezwa"); // KUTUMIWA WAKATI WA KUPIMA
int ext = 0;
wakati (! ext) {
char ch;
temp = TempMenu ();
ikiwa (temp! = tempPre) {
lcd wazi ();
lcd.print ("Temparature");
lcd.setCursor (0, 1);
lcd.print (temp);
lcd.print ("C");
tempPre = muda;
kuchelewesha (500);
}
ch = customKeypad.getKey ();
ikiwa (ch == '*') // TOKA MENU YA JOTO (ikiwa * IMESITIWA)
{
ext = 1;
lcd wazi ();
Onyesha = 1;
}
}
kuvunja;
TempMenu ();
kuvunja;
}
kesi 'D':
{
lcd wazi ();
lcd.setCursor (0, 0);
lcd.print ("NUA PRAC");
lcd.setCursor (0, 1);
lcd.print ("JB SCHOEMAN");
kuchelewesha (3000);
lcd wazi ();
lcd.setCursor (0, 0);
lcd.print ("MEI 2019");
lcd.setCursor (0, 1);
lcd.print ("CC OOSTHUIZEN");
kuchelewesha (3000);
lcd wazi ();
Onyesha = 1;
}
}
}
}
}
// KAZI ZA HESHIMA ZA KUITA MAADILI AU TARATIBU
Nenosiri tupu ()
{
char customKey = customKeypad.getKey ();
ikiwa [customKey] // inahakikisha kitufe kimeshinikizwa, sawa na [customKey! = NO_KEY]
{
Takwimu [data_count] = customKey; // duka char kwenye safu ya data
lcd.setCursor (data_count, 1); // songa mshale kuonyesha kila char mpya
lcd.print ("*"); // chapa char kwenye mshale uliosemwa
data_ hesabu ++; // safu ya data ya kuongezeka kwa 1 kuhifadhi char mpya, pia fuatilia idadi ya chars zilizoingizwa
}
ikiwa (data_count == Password_Lenght-1) // ikiwa safu ya safu ni sawa na idadi ya chars zinazotarajiwa, linganisha data na bwana
{
lcd wazi ();
lcd.setCursor (0, 0);
lcd.print ("Nenosiri ni");
ikiwa (! strcmp (Data, Master)) // sawa na (strcmp (Data, Master) == 0)
{
lcd.print ("Nzuri");
lcd wazi ();
Onyesha = 1;
}
mwingine
lcd.print ("Mbaya");
ucheleweshaji (1000);
lcd wazi ();
clearData ();
lcd wazi ();
lcd.setCursor (0, 0);
lcd.print ("Ingiza Nenosiri");
}
}
int TempMenu ()
{
Uwasilishaji wa waya (anwani);
Andika waya (0);
Uwasilishaji wa waya ();
Ombi la Waya.kutoka (anwani, 1);
wakati (Wire.available () == 0);
int c = Kusoma kwa waya ();
kurudi c;
}
batili clearData ()
{
wakati (data_count! = 0)
{// Hii inaweza kutumika kwa saizi yoyote ya safu, Takwimu [data_ hesabu--] = 0; // safu wazi ya data mpya
}
}
Utupu wa Duka la Mtumiaji ()
{
int ext = 0;
mtumiaji wa ndani;
char ch;
wakati (! ext) {
lcd wazi ();
lcd.print ("Ingiza Mtumiaji");
mtumiaji = watumiaji + 1;
lcd.print (mtumiaji);
int x = 0;
wakati (! x) {
kwa (int i = 0; i <10; i ++) {
ch = customKeypad.waitForKey ();
lcd.setCursor (i, 1);
lcd.print (ch);
userNum [mtumiaji - 1] = ch;
}
kuchelewesha (500);
lcd wazi ();
lcd.print ("Endelea");
lcd.setCursor (0, 1);
lcd.print ("* ndiyo # hapana");
ch = customKeypad.waitForKey ();
ikiwa (ch == '*') {
x = 1;
}
ikiwa (ch == '#') {
x = 1;
ext = 1;
lcd wazi ();
Onyesha = 1;
}
}
watumiaji ++;
}
}
Watumiaji wa Utupu ()
{
lcd wazi ();
kwa (int i = 0; i <watumiaji; i ++) {
lcd.print ("Mtumiaji aliyeokoka");
lcd.print (i + 1);
kwa (int u = 0; u <10; u ++) {
lcd.setCursor (u, 1);
lcd.print (userNum [u]);
}
kuchelewa (2000);
lcd wazi ();
Onyesha = 1;
}
}
Hatua ya 4: MWONGOZO WA MTUMIAJI
1. Baada ya kuwasha mradi, skrini ya kupakia au kukaribisha itaonekana.
2. Skrini ya "Ingiza Nenosiri" itaonekana, skrini hii hukuruhusu kuingiza herufi 4, herufi au nambari, nenosiri sahihi ni: 5466, hii itakupa ufikiaji wa menyu kuu.
3. Baada ya kuingiza nywila sahihi, menyu kuu itaonekana na chaguzi 4 zinazowezekana kuzunguka kazi tofauti zinazopatikana.
· A - Ingiza nambari za simu za rununu za mtumiaji.
o Ingiza nambari 10 ili kuokoa mtumiaji kwenye mfumo
o Baada ya nambari 10 kuingizwa bonyeza "*" kuongeza watumiaji zaidi, au bonyeza "#" ili kurudi kwenye menyu kuu
· B - Onyesha watumiaji waliohifadhiwa
Watumiaji watapita mbele ya skrini, huonyeshwa kwa sekunde 3 kila mmoja, mara tu watumiaji wote wataonyeshwa ukurasa utafunga na kurudi kwenye menyu kuu.
o Ikiwa hakuna watumiaji walioongezwa kwenye chaguo la menyu A, itaonyesha "HAKUNA WATUMIAJI WALIOOKOA".
· C - Inaonyesha joto la moja kwa moja
o Bonyeza "*" ili kurudi kwenye menyu kuu
· D - Onyesha maandishi mafupi
o Inaonyesha jina la muumbaji na mada iliyoandaliwa kwa tarehe.
Ilipendekeza:
Menyu ya Maonyesho ya Arduino OLED na Chaguo Chagua: Hatua 8

Menyu ya Maonyesho ya OD ya Arduino na Chaguo Cha Chagua: Katika mafunzo haya tutajifunza jinsi ya kutengeneza menyu na chaguo la uteuzi ukitumia OLED Onyesha na Visuino
Menyu ya Udhibiti wa Kasi ya Stepper inayoendeshwa kwa Arduino: Hatua 6

Menyu ya Udhibiti wa Kasi ya Stepper inayoendeshwa kwa Arduino: Maktaba hii ya SpeedStepper ni kuandika tena maktaba ya AccelStepper kuruhusu udhibiti wa kasi wa motor stepper. Maktaba ya SpeedStepper hukuruhusu kubadilisha kasi ya seti ya gari na kisha inaharakisha / kupunguza kasi kwa kasi mpya ya kuweka kwa kutumia njia hiyo hiyo
Arduino DHT22 Sensor na Mradi wa Unyevu wa Udongo Na Menyu: Hatua 4

Mradi wa Sensorer na DHT22 ya Arduino DHT22 na Menyu: Halo jamani Leo ninawasilisha mradi wangu wa pili juu ya mafundisho. . Mradi huu ni
Kikumbusho cha Matumizi ya Screen Screen (Inafanya kazi tu kwenye Windows, Ios Haitafanya kazi): Hatua 5

Kikumbusho cha Matumizi ya Muda wa Screen (Inafanya kazi tu kwenye Windows, Ios Haitafanya kazi): UtanguliziHii ni mashine muhimu iliyotengenezwa na Arduino, inakukumbusha kupumzika kwa kutengeneza " biiii! &Quot; sauti na kuifanya kompyuta yako irudi kufunga skrini baada ya kutumia dakika 30 za wakati wa skrini. Baada ya kupumzika kwa dakika 10 itakuwa " b
Tumia Zoo ya Galaxy kuunda Usuli wa eneo-kazi: Hatua 5

Tumia Zoo ya Galaxy kuunda Usuli wa eneo-kazi Pia ni njia nzuri ya kupata nyota za kupendeza. Hapa kuna jinsi ya kuunda picha yako ya kipekee ya asili ya nyota ukitumia Galaxy Zoo