Innehållsförteckning:
![Arduino UNO (skapa menyer och funktioner): 4 steg Arduino UNO (skapa menyer och funktioner): 4 steg](https://i.howwhatproduce.com/images/004/image-9747-10-j.webp)
Video: Arduino UNO (skapa menyer och funktioner): 4 steg
![Video: Arduino UNO (skapa menyer och funktioner): 4 steg Video: Arduino UNO (skapa menyer och funktioner): 4 steg](https://i.ytimg.com/vi/0XihwdulmDQ/hqdefault.jpg)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
![Arduino UNO (skapa menyer och funktioner) Arduino UNO (skapa menyer och funktioner)](https://i.howwhatproduce.com/images/004/image-9747-11-j.webp)
![Arduino UNO (skapa menyer och funktioner) Arduino UNO (skapa menyer och funktioner)](https://i.howwhatproduce.com/images/004/image-9747-12-j.webp)
I den här instruktionsboken kommer vi att utforska hur man skapar menyer, läsa temperatur från en TC74A0 -sensor och visa "värden" (i detta fall mobiltelefonnummer) på ett sätt som är oändligt, men begränsat till arduinoerna ombord.
Vi kommer att använda
-Arrays
-LCD-skärm
-Knappsats
Användarhandbok ingår i det sista steget.
Steg 1: Komponenter
Arduino Uno
· 4x4 knappsats
· TC74A0 digital temperaturgivare
· I2c 16x2 LCD -modul
· 16x2 flytande kristallskärm
· Bygelkablar
· Brödbräda
· Personlig dator
· Arduino IDE
· Överföringskabel
Steg 2: Komponentledningar
TEMP SENSOR OCH LCD ANSLUTAD PÅ SAMMA LINJE TILL SDA OCH SCL (A4, A5)
LCD (I2c -modul)
o SDA till A5 på Arduino
o SCL till A4 på Arduino
o VCC till 5V på Arduino
o GND till GND på Arduino
· 4 x 4 knappsatser
o Pin 1 - 8 på knappsatsen ansluten till pin 9 - 2 på Arduino respektive
TC74A0 temp sensor
o TC74A0 stift 2 till SDA på Arduino
o TC74A0 stift 3 till GND på Arduino
o TC74A0 stift 4 till SCL på Arduino
o TC74A0 stift 5 till 5V på Arduino
Steg 3: Kod
#include // Inkluderar bibliotek vid kompilering
#omfatta
#omfatta
#define Password_Lenght 5
#define Command_Lenght 3
#define CellNumber 10
int användare = 0;
int Display = 0;
int -adress = 72; // tc74a0 ADRESS
int I = 0;
int ANVÄNDARE;
int X = 0;
int XY = 0;
int temp;
int tempPre = 0;
char userNum [10] [10] = {{}, {}, {}};
char Data [Password_Lenght];
char Master [Password_Lenght] = "5466"; //LÖSENORD
char ExitData [Command_Lenght]; //
char Master1 [Command_Lenght] = "**"; //
char MenuItem;
röding CELLArrayA [10];
röding CELLArrayB [10];
röding CELLArrayC [10];
const byte RADER = 4; // fyra rader
const byte COLS = 4; // fyra kolumner
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 [RADER] [COLS] = // INITIERANDE KNAPP
{
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}
};
Tangentbord customKeypad = Tangentbord (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);
void setup ()
{
Serial.begin (9600); // detta skapar Serial Monitor
Wire.begin (); // detta skapar ett Wire -objekt
lcd.begin (16, 2);
lcd.backlight ();
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Vänta 3"); // LADDNINGSSKÄRM
fördröjning (1000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Vänta 2");
fördröjning (1000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Vänta 1");
fördröjning (300);
lcd.clear ();
String myString = "ARDUINO INSTRUCTABLE";
lcd.setCursor (2, 2);
lcd.print (myString);
fördröjning (2500);
för (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)
{
lcd.scrollDisplayLeft ();
fördröjning (300);
}
lcd.clear ();
lcd.print ("Ange lösenord");
}
void loop ()
{
switch (Display) // VAR I HUVUDMENYEN ÄR VI
{// GJORDE ANVÄNDAREN TRYCK A, B, C, D
fall 0:
{
Lösenord();
}
ha sönder;
fall 1:
{
lcd.clear ();
lcd.setCursor (0, 1);
lcd.print ("A B C D");
lcd.setCursor (0, 0);
lcd.print ("Huvudmeny");
Display = 2;
fördröjning (100);
ha sönder;
}
fall 2:
{
char customKey = customKeypad.getKey ();
switch (customKey)
{
fall 'A':
{
Serial.println ("A trycktes");
StoreUser ();
ha sönder;
}
fall 'B':
{
Serial.println ("B trycktes");
om (användare == 0) {
lcd.clear ();
lcd.print ("INGA SPARADE ANVÄNDARE");
fördröjning (3000);
lcd.clear ();
Display = 1;
ha sönder;
}
DisplayUsers (); ha sönder;
}
fall 'C':
{
Serial.println ("C trycktes"); // ANVÄNDAS UNDER TESTNING
int ext = 0;
medan (! ext) {
char ch;
temp = TempMenu ();
if (temp! = tempPre) {
lcd.clear ();
lcd.print ("Temparature");
lcd.setCursor (0, 1);
lcd.print (temp);
lcd.print ("C");
tempPre = temp;
fördröjning (500);
}
ch = customKeypad.getKey ();
if (ch == ' *') // EXIT TEMPERATURE MENU (om * TRYCKT)
{
ext = 1;
lcd.clear ();
Display = 1;
}
}
ha sönder;
TempMenu ();
ha sönder;
}
fall 'D':
{
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("NUA PRAC");
lcd.setCursor (0, 1);
lcd.print ("JB SCHOEMAN");
fördröjning (3000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("MAJ 2019");
lcd.setCursor (0, 1);
lcd.print ("CC OOSTHUIZEN");
fördröjning (3000);
lcd.clear ();
Display = 1;
}
}
}
}
}
// ANPASSADE FUNKTIONER FÖR ATT RINGA VÄRDEN ELLER FÖRFARANDEN
ogiltigt lösenord ()
{
char customKey = customKeypad.getKey ();
om (customKey) // ser till att en tangent faktiskt trycks in, lika med (customKey! = NO_KEY)
{
Data [data_count] = customKey; // lagra röding i data array
lcd.setCursor (data_count, 1); // flytta markören för att visa varje ny tecken
lcd.print ("*"); // skriv ut char vid nämnda markör
data_count ++; // öka datamatrisen med 1 för att lagra ny röding, håll även koll på antalet inmatade tecken
}
om (data_count == Password_Lenght-1) // om arrayindex är lika med antalet förväntade tecken, jämför data med master
{
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Lösenord är");
if (! strcmp (Data, Master)) // lika med (strcmp (Data, Master) == 0)
{
lcd.print ("Bra");
lcd.clear ();
Display = 1;
}
annan
lcd.print ("Dåligt");
delay (1000); // lagt till 1 sekund fördröjning för att se till att lösenordet visas helt på skärmen innan det rensas.
lcd.clear ();
radera data();
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print ("Ange lösenord");
}
}
int TempMeny ()
{
Wire.beginTransmission (adress);
Wire.write (0);
Wire.endTransmission ();
Wire.requestFrom (adress, 1);
medan (Wire.available () == 0);
int c = Wire.read ();
retur c;
}
void clearData ()
{
medan (data_count! = 0)
{// Detta kan användas för valfri matrisstorlek, Data [data_count--] = 0; // rensa array för nya data
}
}
void StoreUser ()
{
int ext = 0;
int användare;
char ch;
medan (! ext) {
lcd.clear ();
lcd.print ("Ange användare");
användare = användare + 1;
lcd.print (användare);
int x = 0;
medan (! x) {
för (int i = 0; i <10; i ++) {
ch = customKeypad.waitForKey ();
lcd.setCursor (i, 1);
lcd.print (ch);
userNum [användare - 1] = ch;
}
fördröjning (500);
lcd.clear ();
lcd.print ("Fortsätt");
lcd.setCursor (0, 1);
lcd.print ("* ja # nej");
ch = customKeypad.waitForKey ();
om (ch == '*') {
x = 1;
}
om (ch == '#') {
x = 1;
ext = 1;
lcd.clear ();
Display = 1;
}
}
användare ++;
}
}
void DisplayUsers ()
{
lcd.clear ();
för (int i = 0; i <användare; i ++) {
lcd.print ("Sparad användare");
lcd.print (i + 1);
för (int u = 0; u <10; u ++) {
lcd.setCursor (u, 1);
lcd.print (userNum [u]);
}
fördröjning (2000);
lcd.clear ();
Display = 1;
}
}
Steg 4: ANVÄNDARGUIDE
1. När du slår på projektet visas en laddnings- eller välkomstskärm.
2. En "Ange lösenord" -skärm visas, denna skärm låter dig skriva in 4 tecken, bokstäver eller siffror, rätt lösenord är: 5466, detta ger dig tillgång till huvudmenyn.
3. När du anger rätt lösenord visas huvudmenyn med fyra möjliga alternativ för att navigera mellan de olika tillgängliga funktionerna.
· A - Ange användarens mobiltelefonnummer.
o Ange 10 siffror för att spara en användare i systemet
o När 10 siffror har skrivits in trycker du på " *" för att lägga till fler användare, eller tryck på "#" för att gå tillbaka till huvudmenyn
· B - Visa sparade användare
o Användarna kommer att rulla förbi skärmen, de visas i 3 sekunder vardera, så snart alla användare visas stängs sidan och återgår till huvudmenyn.
o Om inga användare har lagts till i menyalternativ A, visas "INGA SPARADE ANVÄNDARE".
· C - Visar levande temperatur
o Tryck på “*” för att gå tillbaka till huvudmenyn
· D - Visa kort text
o Visar skaparens namn och ämnet det sammanställdes för med ett datum.
Rekommenderad:
Skapa en WiFi -värmekarta med ESP8266 och Arduino: 5 steg
![Skapa en WiFi -värmekarta med ESP8266 och Arduino: 5 steg Skapa en WiFi -värmekarta med ESP8266 och Arduino: 5 steg](https://i.howwhatproduce.com/images/005/image-14008-j.webp)
Skapa en WiFi-värmekarta med hjälp av ESP8266 & Arduino: Översikt I denna handledning ska vi göra en värmekarta över de omgivande Wi-Fi-signalerna med Arduino och ESP8266. med Arduino och TFT disp
Ansluter bearbetning och Arduino och gör 7 segment och servo GUI -kontroller: 4 steg
![Ansluter bearbetning och Arduino och gör 7 segment och servo GUI -kontroller: 4 steg Ansluter bearbetning och Arduino och gör 7 segment och servo GUI -kontroller: 4 steg](https://i.howwhatproduce.com/images/009/image-25340-j.webp)
Ansluta bearbetning och Arduino och göra 7 segment och servo GUI -kontroller: För vissa projekt måste du använda Arduino eftersom det ger en enkel prototypplattform men visning av grafik i seriell bildskärm av Arduino kan ta ganska lång tid och är till och med svårt att göra. Du kan visa grafer på Arduino Serial Monitor
Introduktion till sopning och modifiering av funktioner: 9 steg
![Introduktion till sopning och modifiering av funktioner: 9 steg Introduktion till sopning och modifiering av funktioner: 9 steg](https://i.howwhatproduce.com/images/010/image-28826-j.webp)
Introduktion till sopning och modifieringsfunktioner: Denna handledning kommer att avslöja dig för det grundläggande svepkommandot, hålfunktioner, cirkulärt mönster, filé, fasning, rotera och återanvända skisser. Gå till ritpaketet för teknisk dimensionering och använd de ljudlösa videorna för att hjälpa dig
Hur man använder Mac Terminal och hur man använder viktiga funktioner: 4 steg
![Hur man använder Mac Terminal och hur man använder viktiga funktioner: 4 steg Hur man använder Mac Terminal och hur man använder viktiga funktioner: 4 steg](https://i.howwhatproduce.com/images/005/image-14039-7-j.webp)
Så här använder du Mac Terminal och hur du använder viktiga funktioner: Vi visar dig hur du öppnar MAC Terminal. Vi kommer också att visa dig några funktioner i terminalen, till exempel ifconfig, ändra kataloger, komma åt filer och arp. Ifconfig låter dig kontrollera din IP -adress och din MAC -annons
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
![Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder) Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)](https://i.howwhatproduce.com/images/003/image-7803-43-j.webp)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid