Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bahagi
- Hakbang 2: Mga Kable ng Component
- Hakbang 3: Code
- Hakbang 4: Gabay sa Gumagamit
Video: Arduino UNO (paglikha ng Mga Menu at Pag-andar): 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Sa pagtuturo na ito, susuriin namin kung paano lumikha ng mga menu, basahin ang temperatura mula sa isang sensor ng TC74A0 at ipakita ang "mga halaga" (sa kasong ito ang mga numero ng cellphone) sa paraang walang hanggan, ngunit limitado sa memorya ng arduino.
Gagamitin namin
-Arrays
-Liquid na kristal display
-Keypad
Kasama ang gabay sa gumagamit sa huling hakbang.
Hakbang 1: Mga Bahagi
Arduino Uno
· 4x4 keypad
· TC74A0 digital sensor ng temperatura
· I2c 16x2 LCD Module
· 16x2 likidong kristal na display
· Jumper wires
· Breadboard
· Personal na computer
· Arduino IDE
· Paglipat ng cable
Hakbang 2: Mga Kable ng Component
TEMP SENSOR AT LCD NA KONEKTO SA PAREHONG LINYA SA SDA AT SCL (A4, A5)
LCD (I2c Modyul)
o SDA hanggang A5 sa Arduino
o SCL hanggang A4 sa Arduino
o VCC hanggang 5V sa Arduino
o GND sa GND sa Arduino
· 4 x 4 Keypad
o Pin 1 - 8 sa Keypad na konektado sa pin 9 - 2 sa Arduino ayon sa pagkakabanggit
Sensor ng TC74A0 temp
o TC74A0 pin 2 sa SDA sa Arduino
o TC74A0 pin 3 sa GND sa Arduino
o TC74A0 pin 4 sa SCL sa Arduino
o TC74A0 pin 5 hanggang 5V sa Arduino
Hakbang 3: Code
#include // May kasamang mga aklatan kapag nag-iipon
# isama
# isama
# tukuyin ang Password_Lenght 5
# tukuyin ang Command_Lenght 3
# tukuyin ang CellNumber 10
int mga gumagamit = 0;
int Display = 0;
int address = 72; // tc74a0 ADDRESS
int I = 0;
int USER;
int X = 0;
int XY = 0;
int temp;
int tempPre = 0;
char userNum [10] [10] = {{}, {}, {}};
char Data [Password_Lenght];
char Master [Password_Lenght] = "5466"; // PASSWORD
char ExitData [Command_Lenght]; //
char Master1 [Command_Lenght] = "**"; //
char MenuItem;
char CELLArrayA [10];
char CELLArrayB [10];
char CELLArrayC [10];
const byte ROWS = 4; // apat na hilera
const byte COLS = 4; // apat na haligi
byte rowPins [ROWS] = {5, 4, 3, 2};
byte colPins [COLS] = {9, 8, 7, 6};
byte data_count = 0, master_count = 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);
walang bisa ang pag-setup ()
{
Serial.begin (9600); // lumilikha ito ng Serial Monitor
Wire.begin (); // Lumilikha ito ng isang Wire object
lcd.begin (16, 2);
lcd.backlight ();
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Mangyaring Maghintay 3"); // LOADING SCREEN
pagkaantala (1000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Mangyaring Maghintay 2");
pagkaantala (1000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Mangyaring Maghintay 1");
pagkaantala (300);
lcd.clear ();
String myString = "ARDUINO INSTRUCTABLE";
lcd.setCursor (2, 2);
lcd.print (myString);
pagkaantala (2500);
para sa (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)
{
lcd.scrollDisplayLeft ();
pagkaantala (300);
}
lcd.clear ();
lcd.print ("Enter Password");
}
walang bisa loop ()
{
switch (Display) // SAAN SA PANGUNAHING MENU KAMI
{// ANG USER PRESS A, B, C, D
kaso 0:
{
Password ();
}
pahinga;
kaso 1:
{
lcd.clear ();
lcd.setCursor (0, 1);
lcd.print ("A B C D");
lcd.setCursor (0, 0);
lcd.print ("Pangunahing Menu");
Ipakita = 2;
pagkaantala (100);
pahinga;
}
kaso 2:
{
char customKey = customKeypad.getKey ();
lumipat (customKey)
{
kaso 'A':
{
Serial.println ("Isang pinindot");
StoreUser ();
pahinga;
}
kaso 'B':
{
Serial.println ("B ay pinindot");
kung (mga gumagamit == 0) {
lcd.clear ();
lcd.print ("WALANG NAGLIGTAS NA MAMAMAY");
pagkaantala (3000);
lcd.clear ();
Ipakita = 1;
pahinga;
}
Mga DisplayUser (); pahinga;
}
kaso 'C':
{
Serial.println ("C ay pinindot"); // USED DURING TESTING
int ext = 0;
habang (! ext) {
char ch;
temp = TempMenu ();
kung (temp! = tempPre) {
lcd.clear ();
lcd.print ("Pansamantalang");
lcd.setCursor (0, 1);
lcd.print (temp);
lcd.print ("C");
tempPre = temp;
pagkaantala (500);
}
ch = customKeypad.getKey ();
kung (ch == '*') // EXIT TEMPERATURE MENU (kung * PRESSED)
{
ext = 1;
lcd.clear ();
Ipakita = 1;
}
}
pahinga;
TempMenu ();
pahinga;
}
kaso 'D':
{
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("NUA PRAC");
lcd.setCursor (0, 1);
lcd.print ("JB SCHOEMAN");
pagkaantala (3000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("MAY 2019");
lcd.setCursor (0, 1);
lcd.print ("CC OOSTHUIZEN");
pagkaantala (3000);
lcd.clear ();
Ipakita = 1;
}
}
}
}
}
// CUSTOM FUNCTIONS TO CALL VALUES O PAMAMARAAN
walang bisa ang Password ()
{
char customKey = customKeypad.getKey ();
kung tinitiyak ng (customKey) // na ang isang key ay talagang pinindot, katumbas ng (customKey! = NO_KEY)
{
Data [data_count] = pasadyaKey; // store char into data array
lcd.setCursor (data_count, 1); // ilipat ang cursor upang ipakita ang bawat bagong char
lcd.print ("*"); // print char sa nasabing cursor
data_count ++; // increment data array ng 1 upang mag-imbak ng bagong char, subaybayan din ang bilang ng mga char na ipinasok
}
kung (data_count == Password_Lenght-1) // kung ang array index ay katumbas ng bilang ng mga inaasahang chars, ihambing ang data sa master
{
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Ang password ay");
kung (! strcmp (Data, Master)) // katumbas ng (strcmp (Data, Master) == 0)
{
lcd.print ("Mabuti");
lcd.clear ();
Ipakita = 1;
}
iba pa
lcd.print ("Masama");
antala (1000); // nagdagdag ng 1 segundong pagkaantala upang matiyak na ang password ay ganap na ipinakita sa screen bago ito ma-clear.
lcd.clear ();
clearData ();
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Enter Password");
}
}
int TempMenu ()
{
Wire.beginTransmission (address);
Wire.write (0);
Wire.endTransmission ();
Wire.requestFrom (address, 1);
habang (Wire.available () == 0);
int c = Wire.read ();
bumalik c;
}
void clearData ()
{
habang (data_count! = 0)
{// Maaari itong magamit para sa anumang laki ng array, Data [data_count--] = 0; // clear array para sa bagong data
}
}
walang bisa ang StoreUser ()
{
int ext = 0;
int gumagamit;
char ch;
habang (! ext) {
lcd.clear ();
lcd.print ("Enter User");
gumagamit = mga gumagamit + 1;
lcd.print (gumagamit);
int x = 0;
habang (! x) {
para sa (int i = 0; i <10; i ++) {
ch = customKeypad.waitForKey ();
lcd.setCursor (i, 1);
lcd.print (ch);
userNum [gumagamit - 1] = ch;
}
pagkaantala (500);
lcd.clear ();
lcd.print ("Magpatuloy");
lcd.setCursor (0, 1);
lcd.print ("* oo # hindi");
ch = customKeypad.waitForKey ();
kung (ch == '*') {
x = 1;
}
kung (ch == '#') {
x = 1;
ext = 1;
lcd.clear ();
Ipakita = 1;
}
}
mga gumagamit ++;
}
}
walang bisa ang mga DisplayUser ()
{
lcd.clear ();
para sa (int i = 0; i <mga gumagamit; i ++) {
lcd.print ("Nai-save na Gumagamit");
lcd.print (i + 1);
para sa (int u = 0; u <10; u ++) {
lcd.setCursor (u, 1);
lcd.print (userNum [u]);
}
pagkaantala (2000);
lcd.clear ();
Ipakita = 1;
}
}
Hakbang 4: Gabay sa Gumagamit
1. Sa paglipat ng proyekto, lilitaw ang isang loading o welcome screen.
2. lilitaw ang isang "Enter Password" na screen, pinapayagan ka ng screen na ito na magpasok ng 4 na mga character, titik o numero, ang tamang password ay: 5466, bibigyan ka nito ng pag-access sa pangunahing menu.
3. Sa pagpasok ng tamang password, lilitaw ang pangunahing menu na may 4 na posibleng mga pagpipilian upang mag-navigate sa iba't ibang magagamit na mga pag-andar.
· A - Ipasok ang mga numero ng cell phone ng gumagamit.
o Magpasok ng 10 digit upang mai-save ang isang gumagamit sa system
o Pagkatapos ng 10 digit na ipinasok pindutin ang "*" upang magdagdag ng higit pang mga gumagamit, o pindutin ang "#" upang lumabas pabalik sa pangunahing menu
· B - Ipakita ang nai-save na mga gumagamit
o Ang mga gumagamit ay mag-scroll sa nakaraang screen, ipinapakita ang mga ito nang 3 segundo bawat isa, sa sandaling maipakita ang lahat ng mga gumagamit ay magsasara ang pahina at babalik sa pangunahing menu.
o Kung walang mga gumagamit na naidagdag sa menu na pagpipilian A, ipapakita nito ang "WALANG NA-save na mga Gumagamit".
· C - Nagpapakita ng live na temperatura
o Pindutin ang “*“upang lumabas pabalik sa pangunahing menu
· D - Ipakita ang maikling teksto
o Ipinapakita ang pangalan ng lumikha at ang paksang pinag-ipunan para sa isang petsa.
Inirerekumendang:
Orientasyong Pag-program sa Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Pamamaraan sa Pagtuturo / Pamamaraan Gamit ang Shape Puncher: 5 Hakbang
Pag-ooriya sa Pag-program ng Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Pamamaraan sa Pagtuturo / Pamamaraan Gamit ang Shape Puncher: Pamamaraan sa pag-aaral / pagtuturo para sa mga mag-aaral na bago sa object-oriented na programa. Ito ay isang paraan upang pahintulutan silang makita at makita ang proseso ng paglikha ng mga bagay mula sa mga klase. Bahagi 1. EkTools 2-pulgada malaking suntok; ang mga solidong hugis ay pinakamahusay.2. Piraso ng papel o c
Orientasyong Pag-program sa Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Pamamaraan sa Pagtuturo / Pamamaraan Gamit ang Gunting: 5 Hakbang
Pag-ooriya sa Pag-program ng Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Paraan ng Pagtuturo / Pamamaraan Gamit ang Gunting: Pamamaraan sa pag-aaral / pagtuturo para sa mga mag-aaral na bago sa object-oriented na programa. Ito ay isang paraan upang pahintulutan silang makita at makita ang proseso ng paglikha ng mga bagay mula sa mga klase.Bahagi: 1. Gunting (anumang uri ang magagawa). 2. Piraso ng papel o karton. 3. Marker.
Paglikha ng Mga File Gamit ang Mga Utos ng Windows DOS: 16 Hakbang
Lumilikha ng Mga File Gamit ang Mga Utos ng Windows DOS: Tuturuan ka nito kung paano gumamit ng ilang pangunahing mga utos ng Windows DOS. Mag-navigate kami sa aming desktop, lilikha ng isang folder, at lilikha ng isang file sa loob ng folder na iyon
Pag-configure ng AVR Microcontroller Fuse Bits. Paglikha at Pag-upload sa Flash Memory ng Microcontroller ang LED Blinking Program .: 5 Mga Hakbang
Pag-configure ng AVR Microcontroller Fuse Bits. Paglikha at Pag-upload sa Flash Memory ng Microcontroller ang LED Blinking Program .: Sa kasong ito lilikha kami ng simpleng programa sa C code at susunugin ito sa memorya ng microcontroller. Susulat kami ng aming sariling programa at isulat ang hex file, gamit ang Atmel Studio bilang pinagsamang platform ng pag-unlad. Ise-configure namin ang fuse bi
3D CAD - Mga Karaniwang Pag-set up ng Workspace at Paglikha: 14 Mga Hakbang
3D CAD - Mga Karaniwang Pag-set up ng Workspace at Paglikha: -Nilikha ng (a) Karaniwang Bahaging File para sa kahusayan Ang tutorial na ito ay tungkol sa paggawa ng isang default na file ng bahagi na maaari mong buksan sa hinaharap - alam na ang mga tukoy na pangunahing parameter ay naroroon na - pinapaliit ang dami ng paulit-ulit na gawain sa dail