İçindekiler:

Arduino UNO(Menüler ve Fonksiyonlar Oluşturma): 4 Adım
Arduino UNO(Menüler ve Fonksiyonlar Oluşturma): 4 Adım

Video: Arduino UNO(Menüler ve Fonksiyonlar Oluşturma): 4 Adım

Video: Arduino UNO(Menüler ve Fonksiyonlar Oluşturma): 4 Adım
Video: Arduino Nedir? Nasıl Kurulur ve Neler Yapılabilir? #1 2024, Temmuz
Anonim
Arduino UNO(Menüler ve Fonksiyonlar Oluşturma)
Arduino UNO(Menüler ve Fonksiyonlar Oluşturma)
Arduino UNO(Menüler ve Fonksiyonlar Oluşturma)
Arduino UNO(Menüler ve Fonksiyonlar Oluşturma)

Bu talimatta, menülerin nasıl oluşturulacağını, bir TC74A0 sensöründen sıcaklığın nasıl okunacağını ve "değerleri" (bu durumda cep telefonu numaralarını) sonsuz, ancak arduino'nun yerleşik belleğiyle sınırlı bir şekilde nasıl göstereceğimizi keşfedeceğiz.

kullanacağız

-diziler

-Sıvı kristal ekran

-Klavye

Son adımda yer alan kullanım kılavuzu.

Adım 1: Bileşenler

Arduino Uno'su

· 4x4 tuş takımı

· TC74A0 dijital sıcaklık sensörü

· I2c 16x2 LCD Modülü

· 16x2 likit kristal ekran

· Jumper kabloları

· ekmek tahtası

· Kişisel bilgisayar

· Arduino IDE'si

· Aktarma kablosu

Adım 2: Bileşen Kablolaması

SDA VE SCL'YE AYNI HATTA BAĞLI SICAKLIK SENSÖRÜ VE LCD (A4, A5)

LCD (I2c Modülü)

o Arduino'da SDA'dan A5'e

o Arduino'da SCL'den A4'e

o Arduino'da VCC'den 5V'a

o Arduino'da GND'den GND'ye

· 4 x 4 Tuş Takımı

o Sırasıyla Arduino'daki pin 9 – 2'ye bağlı Tuş Takımındaki Pin 1 – 8

TC74A0 sıcaklık sensörü

o TC74A0 pin 2'den Arduino'ya SDA

o Arduino'da TC74A0 pin 3'ten GND'ye

o Arduino'da TC74A0 pin 4'ten SCL'ye

o Arduino'da TC74A0 pin 5 - 5V

3. Adım: Kodlayın

#include //Derleme sırasında kitaplıkları dahil eder

#Dahil etmek

#Dahil etmek

#define Password_Light 5

#define Command_Light 3

#define CellNumber 10

int kullanıcılar = 0;

int Görüntü = 0;

int adres= 72; //tc74a0 ADRES

int ben = 0;

int KULLANICI;

int X = 0;

int XY = 0;

int sıcaklık;

int tempPre = 0;

char userNum[10][10] = {{}, {}, {}};

char Veri[Parola_Uzunluğu];

char Master[Password_Lenght] = "5466"; //PAROLA

char ExitData[Command_Lenght]; //

char Master1[Command_Lenght] = "**";//

char MenuItem;

char CELLArrayA[10];

char CELLArrayB[10];

char CELLArrayC[10];

const bayt SATIRLAR = 4; //dört satır

const bayt COLS = 4; //dört sütun

bayt rowPins[SATIR] = {5, 4, 3, 2};

bayt colPins[COLS] = {9, 8, 7, 6};

bayt data_count = 0, master_count = 0;

bool Pass_is_good;

LiquidCrystal_I2C lcd (0x26, 16, 2);

char hexaKeys[ROWS][COLS] = //KEYPAD BAŞLATILIYOR

{

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}

};

Tuş takımı özelKeypad = Tuş takımı(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

geçersiz kurulum()

{

Seri.başla(9600); // bu Seri Monitörü oluşturur

Wire.begin(); //bu bir Wire nesnesi yaratır

lcd.başla(16, 2);

lcd.backlight();

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Lütfen 3 Bekleyin"); //YÜKLEME EKRANI

gecikme(1000);

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Lütfen 2 Bekleyin");

gecikme(1000);

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Lütfen 1 Bekleyin");

gecikme(300);

lcd.clear();

String myString = "ARDUINO EĞİTİMİ";

lcd.setCursor(2, 2);

lcd.print(myString);

gecikme (2500);

for(int scrollCounter=0;scrollCounter<24;scrollCounter++)

{

lcd.scrollDisplayLeft();

gecikme(300);

}

lcd.clear();

lcd.print("Şifreyi Giriniz");

}

boşluk döngüsü()

{

switch(Ekran) //ANA MENÜDE NERDEYİZ

{ //KULLANICI A, B, C, D'YE BASIN

durum 0:

{

Parola();

}

kırmak;

dava 1:

{

lcd.clear();

lcd.setCursor(0, 1);

lcd.print("A B C D");

lcd.setCursor(0, 0);

lcd.print("Ana Menü");

Ekran = 2;

gecikme(100);

kırmak;

}

durum 2:

{

char customKey = customKeypad.getKey();

geçiş (özel anahtar)

{

'A' durumu:

{

Serial.println("A'ya basıldı");

MağazaKullanıcı();

kırmak;

}

'B' durumu:

{

Serial.println("B'ye basıldı");

if (kullanıcılar == 0) {

lcd.clear();

lcd.print("KAYITLI KULLANICI YOK");

gecikme(3000);

lcd.clear();

Ekran = 1;

kırmak;

}

DisplayUsers(); kırmak;

}

'C' durumu:

{

Serial.println("C'ye basıldı"); //TEST SIRASINDA KULLANILIR

int uzantı = 0;

while (!ext) {

karakter ch;

sıcaklık = TempMenu();

if (temp != tempPre) {

lcd.clear();

lcd.print("Sıcaklık");

lcd.setCursor(0, 1);

lcd.print(temp);

lcd.print("C");

tempPre = sıcaklık;

gecikme(500);

}

ch = customKeypad.getKey();

if (ch == '*') //SICAKLIK MENÜSÜNDEN ÇIKIŞ (* BASILIRSA)

{

dahili = 1;

lcd.clear();

Ekran = 1;

}

}

kırmak;

TempMenu();

kırmak;

}

'D' durumu:

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("NUA PRAC");

lcd.setCursor(0, 1);

lcd.print("JB SCHOEMAN");

gecikme(3000);

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Mayıs 2019");

lcd.setCursor(0, 1);

lcd.print("CC OOSTHUIZEN");

gecikme(3000);

lcd.clear();

Ekran = 1;

}

}

}

}

}

// DEĞERLERİ VEYA PROSEDÜRLERİ ÇAĞRIMAK İÇİN ÖZEL FONKSİYONLAR

geçersiz Parola()

{

char customKey = customKeypad.getKey();

if (customKey) // bir tuşa gerçekten basıldığından emin olur, (customKey != NO_KEY) değerine eşittir

{

Veri[veri_sayısı] = özelAnahtar; // char'ı veri dizisine kaydet

lcd.setCursor(veri_sayısı, 1); // her yeni karakteri göstermek için imleci hareket ettir

lcd.print("*"); // söz konusu imleçte karakter yazdır

data_count++; // yeni karakter depolamak için veri dizisini 1 artırın, ayrıca girilen karakter sayısını da takip edin

}

if(data_count == Password_Lenght-1) // dizi indeksi beklenen karakter sayısına eşitse, verileri master ile karşılaştırın

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Şifremiz");

if(!strcmp(Data, Master)) // eşittir (strcmp(Data, Master) == 0)

{

lcd.print("İyi");

lcd.clear();

Ekran = 1;

}

Başka

lcd.print("Kötü");

gecikme(1000);// şifrenin silinmeden önce ekranda tamamen gösterilmesini sağlamak için 1 saniye gecikme eklendi.

lcd.clear();

net veriler();

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Şifreyi Giriniz");

}

}

int TempMenu()

{

Wire.beginTransmission(adres);

Wire.write(0);

Wire.endTransmission();

Wire.requestFrom(adres, 1);

while (Wire.available() == 0);

int c = Wire.read();

dönüş c;

}

geçersiz clearData()

{

while(veri_sayısı !=0)

{ // Bu herhangi bir dizi boyutu için kullanılabilir, Veri[veri_sayısı--] = 0; // yeni veriler için diziyi temizle

}

}

geçersiz StoreUser()

{

int uzantı = 0;

int kullanıcısı;

karakter ch;

while (!ext) {

lcd.clear();

lcd.print("Kullanıcı Girin");

kullanıcı = kullanıcılar + 1;

lcd.print(kullanıcı);

int x = 0;

süre (!x) {

for (int i = 0; i < 10; i++) {

ch = customKeypad.waitForKey();

lcd.setCursor(i, 1);

lcd.print(ch);

userNum[kullanıcı - 1] = ch;

}

gecikme(500);

lcd.clear();

lcd.print("Devam");

lcd.setCursor(0, 1);

lcd.print("* evet #hayır");

ch = customKeypad.waitForKey();

if (ch == '*') {

x = 1;

}

if (ch == '#') {

x = 1;

dahili = 1;

lcd.clear();

Ekran = 1;

}

}

kullanıcılar++;

}

}

geçersiz DisplayUsers()

{

lcd.clear();

for (int i = 0; i < kullanıcılar; i++) {

lcd.print("Kayıtlı Kullanıcı");

lcd.print(i+1);

for (int u = 0; u < 10; u++) {

lcd.setCursor(u, 1);

lcd.print(userNum[u]);

}

gecikme(2000);

lcd.clear();

Ekran = 1;

}

}

Adım 4: KULLANICI KILAVUZU

1. Projeyi açtıktan sonra bir yükleme veya karşılama ekranı görünecektir.

2. Bir “Şifre Girin” ekranı görünecektir, bu ekran 4 karakter, harf veya rakam girmenize izin verir, doğru şifre: 5466, bu size ana menüye erişim sağlayacaktır.

3. Doğru parolayı girdikten sonra, mevcut farklı işlevlerde gezinmek için 4 olası seçenekle ana menü görünecektir.

· A – Kullanıcının cep telefonu numaralarını girin.

o Bir kullanıcıyı sisteme kaydetmek için 10 hane girin

o 10 hane girildikten sonra daha fazla kullanıcı eklemek için “* “tuşuna basın veya ana menüye geri dönmek için “#” tuşuna basın

· B – Kayıtlı kullanıcıları göster

o Kullanıcılar ekranı kaydıracak, her biri 3'er saniye görüntülenecek, tüm kullanıcılar görüntülendiğinde sayfa kapanacak ve ana menüye dönecektir.

o A menü seçeneğinde hiçbir kullanıcı eklenmemişse, “KAYDEDİLMİŞ KULLANICI YOK” görüntülenecektir.

· C – Canlı sıcaklığı gösterir

o Ana menüye geri dönmek için “* “tuşuna basın

· D – Kısa metni göster

o Oluşturanın adını ve derlendiği konuyu bir tarihle görüntüler.

Önerilen: