INHOUDSOPGAWE:

Arduino UNO (skep spyskaarte en funksies): 4 stappe
Arduino UNO (skep spyskaarte en funksies): 4 stappe

Video: Arduino UNO (skep spyskaarte en funksies): 4 stappe

Video: Arduino UNO (skep spyskaarte en funksies): 4 stappe
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Julie
Anonim
Arduino UNO (skep spyskaarte en funksies)
Arduino UNO (skep spyskaarte en funksies)
Arduino UNO (skep spyskaarte en funksies)
Arduino UNO (skep spyskaarte en funksies)

In hierdie instruksies sal ons ondersoek hoe om spyskaarte te maak, die temperatuur van 'n TC74A0 -sensor te lees en 'waardes' (in hierdie geval selfoonnommers) te wys op 'n oneindige manier, maar beperk tot die arduino's aan boordgeheue.

Ons sal gebruik

-Arrays

-Vloeibare kristalvertoning

-Toetsenbord

Gebruikersgids ingesluit in die laaste stap.

Stap 1: Komponente

Arduino Uno

· 4x4 -klavier

· TC74A0 digitale temperatuursensor

· I2c 16x2 LCD -module

· 16x2 vloeibare kristal skerm

· Springdrade

· Broodbord

· Persoonlike rekenaar

· Arduino IDE

· Oordragkabel

Stap 2: Bedrading van komponente

TEMPELSENSOR EN LCD op dieselfde lyn verbind met SDA EN SCL (A4, A5)

LCD (I2c -module)

o SDA na A5 op Arduino

o SCL na A4 op Arduino

o VCC tot 5V op Arduino

o GND tot GND op Arduino

· 4 x 4 Toetsenbord

o Speld 1 - 8 op die toetsbord gekoppel aan pen 9 - 2 op onderskeidelik Arduino

TC74A0 temp sensor

o TC74A0 pen 2 na SDA op Arduino

o TC74A0 pen 3 na GND op Arduino

o TC74A0 pen 4 na SCL op Arduino

o TC74A0 pen 5 tot 5V op Arduino

Stap 3: Kodeer

#include // Sluit biblioteke in by die opstel

#insluit

#insluit

#definieer wagwoord_lengte 5

#definieer opdrag_lengte 3

#definieer selnommer 10

int gebruikers = 0;

int Display = 0;

int adres = 72; // tc74a0 ADRES

int I = 0;

int GEBRUIKER;

int X = 0;

int XY = 0;

int temp;

int tempPre = 0;

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

char Data [Password_Lenght];

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

char ExitData [Command_Lenght]; //

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

char MenuItem;

char CELLArrayA [10];

char CELLArrayB [10];

char CELLArrayC [10];

const byte RYDE = 4; // vier rye

const byte COLS = 4; // vier kolomme

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 [ROWS] [COLS] = // INITIATING KEYPAD

{

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

};

Toetsenbord customKeypad = Toetsenbord (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

leemte opstelling ()

{

Serial.begin (9600); // dit skep die Serial Monitor

Wire.begin (); // dit skep 'n Wire -voorwerp

lcd.begin (16, 2);

lcd.backlight ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Wag asseblief 3"); // LAAISKERM

vertraging (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Wag asseblief 2");

vertraging (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Wag asseblief 1");

vertraging (300);

lcd.clear ();

String myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

vertraging (2500);

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

{

lcd.scrollDisplayLeft ();

vertraging (300);

}

lcd.clear ();

lcd.print ("Voer wagwoord in");

}

leemte lus ()

{

skakelaar (vertoon) // WAAR IN DIE HOOFMENU IS ONS

{// HET DIE GEBRUIKER PERS A, B, C, D

saak 0:

{

Wagwoord ();

}

breek;

geval 1:

{

lcd.clear ();

lcd.setCursor (0, 1);

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

lcd.setCursor (0, 0);

lcd.print ("Hoofkieslys");

Vertoon = 2;

vertraging (100);

breek;

}

geval 2:

{

char customKey = customKeypad.getKey ();

skakelaar (customKey)

{

geval 'A':

{

Serial.println ("A is ingedruk");

StoreUser ();

breek;

}

geval 'B':

{

Serial.println ("B is ingedruk");

as (gebruikers == 0) {

lcd.clear ();

lcd.print ("GEEN GEREDE GEBRUIKERS");

vertraging (3000);

lcd.clear ();

Vertoon = 1;

breek;

}

DisplayUsers (); breek;

}

geval 'C':

{

Serial.println ("C is ingedruk"); // GEBRUIKT TYDENS TOETSING

int ext = 0;

terwyl (! ext) {

char ch;

temp = TempMenu ();

as (temp! = tempPre) {

lcd.clear ();

lcd.print ("Temparature");

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print ("C");

tempPre = temp;

vertraging (500);

}

ch = customKeypad.getKey ();

if (ch == ' *') // EXIT TEMPERATURE MENU (as * GEDRUK)

{

ext = 1;

lcd.clear ();

Vertoon = 1;

}

}

breek;

TempMenu ();

breek;

}

geval 'D':

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("NUA PRAC");

lcd.setCursor (0, 1);

lcd.print ("JB SCHOEMAN");

vertraging (3000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("MEI 2019");

lcd.setCursor (0, 1);

lcd.print ("CC OOSTHUIZEN");

vertraging (3000);

lcd.clear ();

Vertoon = 1;

}

}

}

}

}

// AANGEPASTE FUNKSIES OM WAARDES OF PROSEDURES TE BEL

ongeldige wagwoord ()

{

char customKey = customKeypad.getKey ();

as (customKey) // seker maak dat 'n sleutel werklik ingedruk word, gelyk aan (customKey! = NO_KEY)

{

Data [data_telling] = pasgemaakte sleutel; // stoor char in data array

lcd.setCursor (data_count, 1); // beweeg die wyser om elke nuwe teken te wys

lcd.print ("*"); // druk char by genoemde wyser

data_telling ++; // verhoog die data -skikking met 1 om nuwe char op te slaan, hou ook die aantal tekens wat ingevoer is, dop

}

as (data_count == Password_Lenght-1) // as die skikkingindeks gelyk is aan die aantal verwagte karakters, vergelyk data met master

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Wagwoord is");

if (! strcmp (Data, Master)) // gelyk aan (strcmp (Data, Master) == 0)

{

lcd.print ("goed");

lcd.clear ();

Vertoon = 1;

}

anders

lcd.print ("sleg");

delay (1000); // bygevoeg 1 sekonde vertraging om seker te maak dat die wagwoord heeltemal op die skerm verskyn voordat dit skoongemaak word.

lcd.clear ();

duidelike data();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Voer wagwoord in");

}

}

int TempMenu ()

{

Wire.beginTransmission (adres);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (adres, 1);

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

int c = Wire.read ();

terugkeer c;

}

leegte clearData ()

{

terwyl (data_telling! = 0)

{// Dit kan vir enige skikkinggrootte gebruik word, Data [data_telling--] = 0; // duidelike skikking vir nuwe data

}

}

void StoreUser ()

{

int ext = 0;

int gebruiker;

char ch;

terwyl (! ext) {

lcd.clear ();

lcd.print ("Voer gebruiker in");

gebruiker = gebruikers + 1;

lcd.print (gebruiker);

int x = 0;

terwyl (! x) {

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

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [gebruiker - 1] = ch;

}

vertraging (500);

lcd.clear ();

lcd.print ("Gaan voort");

lcd.setCursor (0, 1);

lcd.print ("* ja # nee");

ch = customKeypad.waitForKey ();

as (ch == '*') {

x = 1;

}

as (ch == '#') {

x = 1;

ext = 1;

lcd.clear ();

Vertoon = 1;

}

}

gebruikers ++;

}

}

nietige DisplayUsers ()

{

lcd.clear ();

vir (int i = 0; i <gebruikers; i ++) {

lcd.print ("Gestoorde gebruiker");

lcd.print (i + 1);

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

lcd.setCursor (u, 1);

lcd.print (userNum [u]);

}

vertraging (2000);

lcd.clear ();

Vertoon = 1;

}

}

Stap 4: GEBRUIKERSGIDS

1. As u die projek aanskakel, verskyn 'n laai- of welkomskerm.

2. Daar sal 'n "Enter Password" skerm verskyn; op hierdie skerm kan u 4 karakters, letters of syfers invoer; die regte wagwoord is: 5466, dit gee u toegang tot die hoofkieslys.

3. By die invoer van die korrekte wagwoord verskyn die hoofkieslys met 4 moontlike opsies om deur die verskillende beskikbare funksies te navigeer.

· A - Voer gebruikers selfoonnommers in.

o Tik 10 syfers in om 'n gebruiker op die stelsel te stoor

o Nadat 10 syfers ingevoer is, druk " *" om meer gebruikers by te voeg, of druk "#" om terug te gaan na die hoofkieslys

· B - Wys gestoorde gebruikers

o Die gebruikers sal verby die skerm blaai; dit word elk vir 3 sekondes vertoon, sodra alle gebruikers vertoon word, sal die bladsy toemaak en terugkeer na die hoofkieslys.

o As daar geen gebruikers by menu -opsie A bygevoeg is nie, sal dit 'GEEN GEREDE GEBRUIKERS' vertoon.

· C - Toon lewende temperatuur

o Druk " *" om terug te gaan na die hoofkieslys

· D - Vertoon kort teks

o Gee die naam van die skepper en die onderwerp waarvoor dit saamgestel is, met 'n datum.

Aanbeveel: