Innehållsförteckning:

Arduino UNO (skapa menyer och funktioner): 4 steg
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
Video: Lesson 95: Using L293D 4 DC Motors Shield for Arduino UNO and Mega | Arduino Step By Step Course 2024, Juli
Anonim
Arduino UNO (skapa menyer och funktioner)
Arduino UNO (skapa menyer och funktioner)
Arduino UNO (skapa menyer och funktioner)
Arduino UNO (skapa menyer och funktioner)

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: