Мазмұны:
Бейне: Arduino UNO (мәзірлер мен функцияларды құру): 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұл нұсқаулықта біз мәзірлерді қалай құруды, TC74A0 сенсорынан температураны оқуды және «мәндерді» (бұл жағдайда ұялы телефон нөмірлерін) шексіз, бірақ ардуиноның борттық жадысымен шектелетін түрде көрсетуді қарастырамыз.
Біз қолданатын боламыз
-Массивтер
-Сұйық кристалды дисплей
-пернетақта
Пайдаланушы нұсқаулығы соңғы қадамға енгізілген.
1 -қадам: компоненттер
Ардуино Уно
· 4x4 пернетақта
· TC74A0 цифрлық температура сенсоры
· I2c 16x2 СКД модулі
· 16х2 сұйық кристалды дисплей
· Өтпелі сымдар
· Нан тақтасы
· Дербес компьютер
· Arduino IDE
· Тасымалдау кабелі
2 -қадам: Компонентті сымдар
Температура сенсоры мен СКД SDA мен SCL -ге бір желіде қосылған (A4, A5)
СКД (I2c модулі)
o SDA A5 -тен Arduino -ға
o SCL - A4 форматында Arduino
o Arduino -дағы 5В -қа дейінгі VCC
o GND - Arduino жүйесіндегі GND
· 4 x 4 пернетақта
o Пернетақтадағы 1-8 түйреуіші тиісінше Arduino құрылғысындағы 9 - 2 істікке қосылады
TC74A0 температура сенсоры
o TC74A0 2 түйрегіші Arduino -дағы SDA -ға
o TC74A0 3 түйреуіші Arduino -дағы GND -ге
o TC74A0 4 түйрегіші Arduino -дағы SCL -ге
o TC74A0 түйреуіші Arduino -да 5 -тен 5В -қа дейін
3 -қадам: код
#include // Құрастыру кезінде кітапханалар кіреді
#қосу
#қосу
#құпия сөзді анықтау_ұзындығы 5
#Ұзындықты анықтау пәрмені 3
#ұяшықтың нөмірін анықтаңыз 10
int users = 0;
int Display = 0;
int адресі = 72; // tc74a0 АДРЕС
int I = 0;
int USER;
int X = 0;
int XY = 0;
int temp;
int tempPre = 0;
char userNum [10] [10] = {{}, {}, {}};
char мәліметтері [Password_Lenght];
char Master [Password_Lenght] = «5466»; // құпия сөз
char ExitData [Command_Lenght]; //
char Master1 [Command_Lenght] = «**»; //
char MenuItem;
char CELLArrayA [10];
char CELLArrayB [10];
char CELLArrayC [10];
const байт ROWS = 4; // төрт қатар
COLS const байт = 4; // төрт баған
байт rowPins [ROWS] = {5, 4, 3, 2};
байт colPins [COLS] = {9, 8, 7, 6};
байт data_count = 0, master_count = 0;
bool Pass_is_good;
LiquidCrystal_I2C LCD (0x26, 16, 2);
char hexaKeys [ROWS] [COLS] = // ИНТИЗУЦИАЛЫҚ ПАРАҚТА
{
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}
};
CustomKeypad пернетақтасы = Пернетақта (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);
жарамсыз орнату ()
{
Serial.begin (9600); // бұл сериялық мониторды жасайды
Wire.begin (); // бұл Wire нысанын жасайды
lcd.begin (16, 2);
lcd.backlight ();
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print («Өтінемін 3 күтіңіз»); // ЖҮКТЕУ ЭКРАНЫ
кешіктіру (1000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print («Өтінемін 2 күтіңіз»);
кешіктіру (1000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print («Өтінемін, 1 күтіңіз»);
кешіктіру (300);
lcd.clear ();
String myString = «ARDUINO INSTRUCTABLE»;
lcd.setCursor (2, 2);
lcd.print (myString);
кешіктіру (2500);
үшін (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)
{
lcd.scrollDisplayLeft ();
кешіктіру (300);
}
lcd.clear ();
lcd.print («Құпия сөзді енгізу»);
}
бос цикл ()
{
қосқыш (Дисплей) // НЕГІЗГІ МЕНЮДЕ БІЗ
{// ПАЙДАЛАНУШЫ A, B, C, D басқан ба
0 жағдай:
{
Құпия сөз ();
}
үзіліс;
1 -жағдай:
{
lcd.clear ();
lcd.setCursor (0, 1);
lcd.print («A B C D»);
lcd.setCursor (0, 0);
lcd.print («Негізгі мәзір»);
Көрсету = 2;
кешіктіру (100);
үзіліс;
}
2 -жағдай:
{
char customKey = customKeypad.getKey ();
қосқыш (customKey)
{
«А» жағдайы:
{
Serial.println («A басылды»);
StoreUser ();
үзіліс;
}
«В» жағдайы:
{
Serial.println («B басылды»);
егер (пайдаланушылар == 0) {
lcd.clear ();
lcd.print («САҚТАУЛЫ ПАЙДАЛАНУШЫЛАР ЖОҚ»);
кешіктіру (3000);
lcd.clear ();
Көрсету = 1;
үзіліс;
}
DisplayUsers (); үзіліс;
}
'С' жағдайы:
{
Serial.println («C басылды»); // ТЕСТТЕУ ПАЙДАЛАНУ
int ext = 0;
while (! ext) {
char ch;
temp = TempMenu ();
егер (temp! = tempPre) {
lcd.clear ();
lcd.print («Температура»);
lcd.setCursor (0, 1);
lcd.print (temp);
lcd.print («C»);
tempPre = температура;
кешіктіру (500);
}
ch = customKeypad.getKey ();
if (ch == ' *') // ТЕМПЕРАТУРА МЕНЮІНЕН ШЫҒУ (егер * БАСЫЛҒАН болса)
{
ext = 1;
lcd.clear ();
Көрсету = 1;
}
}
үзіліс;
TempMenu ();
үзіліс;
}
'D' жағдайы:
{
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print («NUA PRAC»);
lcd.setCursor (0, 1);
lcd.print («JB SCHOEMAN»);
кешіктіру (3000);
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print («МАМЫР 2019»);
lcd.setCursor (0, 1);
lcd.print («CC OOSTHUIZEN»);
кешіктіру (3000);
lcd.clear ();
Көрсету = 1;
}
}
}
}
}
// МӘНДЕРДІ НЕМЕСЕ ПРОЦЕДУКТЕРДІ ШАҚЫРУҒА АРНАЛҒАН ФУНКЦИЯЛАР
жарамсыз пароль ()
{
char customKey = customKeypad.getKey ();
if (customKey) // (customKey! = NO_KEY) тең болатын кілт шынымен басылғанына көз жеткізеді
{
Деректер [data_count] = customKey; // char массивін деректер массивінде сақтаңыз
lcd.setCursor (data_count, 1); // әр жаңа таңбаны көрсету үшін жүгіргіні жылжытыңыз
lcd.print («*»); // таңбаны көрсетілген курсорға басып шығарыңыз
data_count ++; // жаңа таңбаны сақтау үшін деректер жиынын 1 -ге көбейтіңіз, сонымен қатар енгізілген таңбалар санын қадағалаңыз
}
if (data_count == Password_Lenght-1) // егер массив индексі күтілетін таңбалар санына тең болса, деректерді бастыға салыстырыңыз
{
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print («Құпия сөз»);
if (! strcmp (Data, Master)) // тең (strcmp (Data, Master) == 0)
{
lcd.print («Жақсы»);
lcd.clear ();
Көрсету = 1;
}
басқа
lcd.print («Нашар»);
кешіктіру (1000); // құпия сөз тазаланғанға дейін экранда толық көрсетілуін қамтамасыз ету үшін 1 секунд кідірісті қосты.
lcd.clear ();
clearData ();
lcd.clear ();
lcd.setCursor (0, 0);
lcd.print («Құпия сөзді енгізу»);
}
}
int TempMenu ()
{
Wire.beginTransmission (мекенжай);
Wire.write (0);
Wire.endTransmission ();
Wire.requestFrom (мекен -жай, 1);
while (Wire.available () == 0);
int c = Wire.read ();
қайтару c;
}
clearData () жарамсыз
{
while (data_count! = 0)
{// Мұны кез келген массив өлшемі үшін қолдануға болады, Деректер [data_count--] = 0; // жаңа деректердің массивін тазарту
}
}
жарамсыз StoreUser ()
{
int ext = 0;
int пайдаланушысы;
char ch;
while (! ext) {
lcd.clear ();
lcd.print («Пайдаланушыны енгізу»);
user = users + 1;
lcd.print (пайдаланушы);
int x = 0;
while (! x) {
үшін (int i = 0; i <10; i ++) {
ch = customKeypad.waitForKey ();
lcd.setCursor (i, 1);
lcd.print (ch);
userNum [user - 1] = ch;
}
кешіктіру (500);
lcd.clear ();
lcd.print («Жалғастыру»);
lcd.setCursor (0, 1);
lcd.print («* иә # жоқ»);
ch = customKeypad.waitForKey ();
егер (ch == '*') {
x = 1;
}
егер (ch == '#') {
x = 1;
ext = 1;
lcd.clear ();
Көрсету = 1;
}
}
пайдаланушылар ++;
}
}
void DisplayUsers ()
{
lcd.clear ();
үшін (int i = 0; i <пайдаланушылар; i ++) {
lcd.print («Сақталған пайдаланушы»);
lcd.print (i + 1);
үшін (int u = 0; u <10; u ++) {
lcd.setCursor (u, 1);
lcd.print (userNum [u]);
}
кешіктіру (2000);
lcd.clear ();
Көрсету = 1;
}
}
4 -қадам: ПАЙДАЛАНУШЫ НҰСҚАУЛЫҒЫ
1. Жобаны қосқаннан кейін жүктеу немесе сәлемдесу экраны пайда болады.
2. «Құпия сөзді енгізу» экраны пайда болады, бұл экран 4 таңбаны, әріптерді немесе сандарды енгізуге мүмкіндік береді, дұрыс пароль: 5466, бұл сізге негізгі мәзірге кіруге мүмкіндік береді.
3. Дұрыс құпия сөзді енгізгеннен кейін, әр түрлі қол жетімді функцияларды шарлау үшін 4 мүмкін болатын негізгі мәзір пайда болады.
· A - пайдаланушының ұялы телефон нөмірлерін енгізіңіз.
o Пайдаланушыны жүйеге сақтау үшін 10 цифр енгізіңіз
o 10 сан енгізілгеннен кейін, қосымша пайдаланушыларды қосу үшін « *» түймесін басыңыз немесе негізгі мәзірге қайту үшін «#» түймесін басыңыз.
· B - Сақталған пайдаланушыларды көрсету
o Пайдаланушылар экранды айналдырады, олардың әрқайсысы 3 секунд бойы көрсетіледі, барлық қолданушылар көрсетілгеннен кейін бет жабылады және негізгі мәзірге оралады.
o Егер А мәзір опциясына бірде -бір пайдаланушы қосылмаған болса, онда ол «САҚталмаған пайдаланушылар жоқ» дегенді көрсетеді.
· C - тірі температураны көрсетеді
o Негізгі мәзірге қайту үшін « *» түймесін басыңыз
· D - қысқа мәтінді көрсету
o Жаратушының аты -жөні мен ол құрастырылған тақырыпты көрсетеді.
Ұсынылған:
Android телефонының зарядтағышына арналған электр желісінің сүзгісін құру және құру: 5 қадам
Android телефонының зарядтағышына арналған электр желісінің сүзгісін құру және құру: Бұл нұсқаулықта мен стандартты USB -ді шағын USB сымына қалай алу керектігін көрсетемін, оны ортасынан ажыратып, шамадан тыс шуды төмендететін сүзгі тізбегін енгіземін. әдеттегі андроид қуат көзімен шығарылатын хэш. Менде портативті м бар
Өңдеу мен Arduino мен 7 сегменті мен сервистік GUI контроллерін қосу: 4 қадам
Processing and Arduino мен Make 7 Segment and Servo GUI контроллерін қосу: Кейбір жобалар үшін сізге Arduino -ны қолдану қажет, себебі ол прототиптеудің оңай платформасын ұсынады, бірақ Arduino -ның сериялық мониторында графиканы көрсету өте ұзақ уақытты қажет етеді және тіпті қиын. Сіз Arduino сериялық мониторында графиктерді көрсете аласыз
DHT11 температура сенсорын Arduino мен басып шығару температурасы мен жылу мен ылғалдылықта қалай қолдануға болады: 5 қадам
DHT11 температура сенсоры Arduino мен басып шығару температурасы бар жылу мен ылғалдылықта қалай қолданылады: DHT11 сенсоры температура мен ылғалдылықты өлшеу үшін қолданылады. DHT11 ылғалдылық пен температура сенсоры электрониканың өте танымал әуесқойлары, DIY электроникасының жобаларына ылғалдылық пен температура туралы мәліметтерді қосуды жеңілдетеді. Бұл әр
Mac терминалын қалай пайдалану керек және негізгі функцияларды қалай қолдану керек: 4 қадам
Mac терминалын қалай пайдалану керек және негізгі функцияларды қалай қолдану керек: Біз сізге MAC терминалын қалай ашу керектігін көрсетеміз. Біз сізге терминалда ifconfig, каталогтарды өзгерту, файлдарға қатынасу және arp сияқты бірнеше мүмкіндіктерді көрсететін боламыз. Ifconfig сізге IP мекенжайын және MAC жарнамасын тексеруге мүмкіндік береді
WiFi мен IR қашықтан басқару пульті мен Android қосымшасын қолданатын NodeMCU мен IR қабылдағышымен 8 релелік басқару: 5 қадам (суреттермен)
WiFi мен IR қашықтан басқару пульті мен Android қосымшасын пайдаланатын NodeMCU мен IR қабылдағышымен 8 релелік басқару: wifi мен қашықтан және андроид қосымшасы арқылы nodemcu мен IR қабылдағышты қолданатын 8 релелік қосқышты басқару. Қашықтан басқару құралы wifi қосылымына тәуелсіз жұмыс істейді. МҰНДА