
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00


Энэхүү зааварчилгаанд бид цэс хэрхэн үүсгэх, TC74A0 мэдрэгчээс температурыг унших, "утга" (энэ тохиолдолд гар утасны дугаар) -ийг хязгааргүй, гэхдээ зөвхөн санах ойн санах ойд хязгаарлагдмал байдлаар харуулах талаар судлах болно.
Бид ашиглах болно
-Массивууд
-Шингэн болор дэлгэц
-Товчлуур
Хэрэглэгчийн гарын авлага эцсийн шатанд багтсан болно.
Алхам 1: бүрэлдэхүүн хэсгүүд
Ардуино Уно
· 4х4 хэмжээтэй товчлуур
· TC74A0 дижитал температур мэдрэгч
· I2c 16x2 LCD модуль
· 16x2 хэмжээтэй шингэн болор дэлгэц
· Холбогч утас
· Талхны самбар
· Хувийн компьютер
· Arduino IDE
· Дамжуулах кабель
Алхам 2: Бүрэлдэхүүн хэсгүүдийн утас
TEMP SENSOR ба LCD нь SDA, SCL (A4, A5) -тэй ижил шугамаар холбогдсон
LCD (I2c модуль)
o Arduino дээрх SDA -аас A5 хүртэл
o SCL -ийг Arduino дээр A4 болгоно
o Arduino дээрх VCC -ийг 5V хүртэл
o Arduino дээр GND -ээс GND хүртэл
· 4 x 4 товчлуур
o Товчлуурын 1-8 -р зүү нь Arduino дээрх 9-2 -р зүүтэй холбогдсон байна
TC74A0 температур мэдрэгч
o TC74A0 2 -р зүүг Arduino дээрх SDA руу холбоно уу
o TC74A0 pin 3 -ийг Arduino дээрх GND руу холбоно уу
o TC74A0 pin 4 -ийг Arduino дээрх SCL руу холбоно уу
o Arduino дээрх TC74A0 5 -аас 5V зүү
Алхам 3: Код
#include // Эмхэтгэх үед номын санг агуулдаг
#оруулах
#оруулах
#Нууц үгийг тодорхойлох_Уртас 5
Тушаалын_Уртыг тодорхойлох 3
#эсийн дугаарыг тодорхойлох 10
int хэрэглэгчид = 0;
int Дэлгэц = 0;
int хаяг = 72; // tc74a0 ХАЯГ
int I = 0;
int USER;
int X = 0;
int XY = 0;
int температур;
int tempPre = 0;
char userNum [10] [10] = {{}, {}, {}};
char Өгөгдөл [Нууц үг_Урт];
char мастер [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; // дөрвөн эгнээ
const байт COLS = 4; // дөрвөн багана
байт rowPins [ROWS] = {5, 4, 3, 2};
байт 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] = // ТҮЛХҮҮРИЙГ САНААЖ БАЙНА
{
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}
};
Keypad customKeypad = Товчлуур (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);
хүчингүй тохиргоо ()
{
Цуваа эхлэх (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);
for (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 ();
завсарлага;
}
'B' тохиолдол:
{
Serial.println ("B дарагдсан");
хэрэв (хэрэглэгчид == 0) {
lcd.clear ();
lcd.print ("ХАДГАЛАГДСАН ХЭРЭГЛЭГЧ БИШ");
саатал (3000);
lcd.clear ();
Дэлгэц = 1;
завсарлага;
}
DisplayUsers (); завсарлага;
}
'С' тохиолдол:
{
Serial.println ("C дарагдсан"); // Туршилтын явцад ашигласан
int ext = 0;
байхад (! ext) {
char ch;
temp = TempMenu ();
if (temp! = tempPre) {
lcd.clear ();
lcd.print ("Температур");
lcd.setCursor (0, 1);
lcd.хэвлэх (температур);
lcd.print ("C");
tempPre = температур;
саатал (500);
}
ch = customKeypad.getKey ();
if (ch == ' *') // TEMPERATURE MENU -с гарах (хэрэв * ХЭВЛЭСЭН бол)
{
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 ("5 -р сарын 2019");
lcd.setCursor (0, 1);
lcd.print ("CC OOSTHUIZEN");
саатал (3000);
lcd.clear ();
Дэлгэц = 1;
}
}
}
}
}
// ҮНЭ ЦЭНЭ, ЖУРАМ ДУУДАХ ГААЛИЙН ФУНКЦИОН
хүчингүй нууц үг ()
{
char customKey = customKeypad.getKey ();
хэрэв (customKey) // товчлуур дарагдсан эсэхийг шалгадаг бол (customKey! = NO_KEY)
{
Өгөгдөл [data_count] = customKey; // char -ийг өгөгдлийн массивт хадгалах
lcd.setCursor (data_count, 1); // шинэ тэмдэгтийг харуулахын тулд курсороо хөдөлгөнө үү
lcd.print ("*"); // заасан курсор дээр char хэвлэ
өгөгдлийн тоо ++; // шинэ тэмдэгт хадгалахын тулд өгөгдлийн массивыг 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 ("Муу");
delay (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;
}
void clearData ()
{
байхад (data_count! = 0)
{// Үүнийг дурын массивын хэмжээтэй ашиглаж болно, Өгөгдөл [data_count--] = 0; // шинэ өгөгдлийн массивыг арилгах
}
}
хоосон StoreUser ()
{
int ext = 0;
int хэрэглэгч;
char ch;
байхад (! ext) {
lcd.clear ();
lcd.print ("Хэрэглэгч оруулах");
хэрэглэгч = хэрэглэгчид + 1;
lcd.print (хэрэглэгч);
int x = 0;
байхад (! x) {
for (int i = 0; i <10; i ++) {
ch = customKeypad.waitForKey ();
lcd.setCursor (i, 1);
lcd.хэвлэх (ch);
userNum [хэрэглэгч - 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 ();
for (int i = 0; i <хэрэглэгчид; i ++) {
lcd.print ("Хадгалсан хэрэглэгч");
lcd.хэвлэх (i + 1);
for (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 Бүтээгчийн нэр, эмхэтгэсэн сэдвийг огноогоор харуулна.
Зөвлөмж болгож буй:
M5StickC Цэс, гэрэлтүүлгийн хяналттай сэрүүн харагдах цаг: 8 алхам

M5StickC цэс, тод байдлын хяналттай сэрүүн харагдах цаг: Энэхүү гарын авлагад бид ESP32 M5Stack StickC -ийг Arduino IDE болон Visuino ашиглан хэрхэн LCD дэлгэц дээр цаг харуулах, мөн цэс болон StickC товчлууруудыг ашиглан цаг, тод байдлыг хэрхэн тохируулах талаар сурах болно. .Жагсаал үзүүлэх видео үзэх
Arduino дээр ажилладаг Stepper Speed Control цэс: 6 алхам

Arduino -д зориулагдсан Stepper Speed Control цэс: Энэхүү SpeedStepper номын сан нь stepper моторын хурдыг хянахын тулд AccelStepper номын санг дахин бичсэн болно. SpeedStepper номын сан нь хөдөлгүүрийн тогтоосон хурдыг өөрчлөх боломжийг олгодог бөгөөд дараа нь ижил алгоритмыг ашиглан шинэ тогтоосон хурдыг хурдасгаж/удаашруулдаг
Аккордеоны цэс: 4 алхам

Аккордеоны цэс: Зөвхөн HTML болон CSS ашиглан олон түвшний баян хуур цэс үүсгээрэй. Би төсөл дээрээ Raspberry Pi ашигладаг боловч энэ нь ямар ч вэб сервер дээр ажиллах боломжтой бөгөөд тодорхой вэб элементийг хэрхэн яаж бий болгох жишээг оруулахын оронд зорилго бүхий загвартай байх явдал юм
Arduino дахь цэс ба товчлуурыг хэрхэн ашиглах вэ: 10 алхам (зурагтай)

Arduino дахь цэс, товчлуурыг хэрхэн ашиглах талаар: Миний Arduino 101 хичээлд Tinkercad дээр орчноо хэрхэн тохируулах талаар зааж өгөх болно. Би Tinkercad -ийг ашигладаг, учир нь энэ нь оюутнуудад хэлхээ бий болгох олон ур чадварыг харуулах боломжийг олгодог нэлээд хүчирхэг онлайн платформ юм. Та чөлөөтэй
Ротари кодлогч ашиглан Nokia 5110 Lcd дээрх Arduino цэс: 6 алхам (зурагтай)

Nokia 5110 Lcd дээрх Rotary Encoder ашиглан Arduino цэс: Эрхэм хүндэт найзуудаа өөр хичээлд урьж байна! Энэхүү видеоноос бид төслүүдээ хэрэглэгчдэд илүү ээлтэй, чадварлаг болгох үүднээс алдартай Nokia 5110 LCD дэлгэцийн цэсийг хэрхэн бүтээх талаар сурах болно. Эхлээд үзье! Энэ бол төсөл