Lab1.2 Sei

S-ar putea să vă placă și

Sunteți pe pagina 1din 6

MINISTERUL EDUCAȚIEI ȘI CERCETĂRII

AL REPUBLICII MOLDOVA
Universitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică şi Microelectronică
Departamentul Microelectronică și Inginerie Biomedicală

Raport
pentru lucrarea de laborator Nr.1.2

la cursul de “ Sisteme electronice incorporate”

A efectuat st. gr.:

A verificat:

Chișinău – 2024
Tema: Interacțiunea cu utilizatorul - LCD+Keypad STDIO
Definire problemă:

1. Sa se configureze aplicatia pentru lucrul cu libraia STDIO prin interfata seriala pentru schimbul de text prin LCD+Keypad.
2. sa se proiecteze o aplicatie in baza de MCU pentru detectarea unui cod de la o tastarura 4x4, sa verifice codul si sa afisese
mesaj la un LCD.
- pentru cod valid sa se aprinda un led de culoare verde, pentru cod invalid, un led de culoare rosie.
- A se utiliza STDIO pentru scanarea tastaturii si afisare la LCD.

Testarea
Concluzie:
Anexă
main.c

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Arduino.h>
#include <Keypad.h>

#define RED_LED 13
#define GREEN_LED 12

LiquidCrystal_I2C lcd(0x27,16,2);

const char CORRECT_CODE[] = "1234";


const byte numRows = 4;
const byte numCols = 4;
String cod;
int stateRED = 0;
int stateGREEN = 0;

char keymap[numRows][numCols]=
{
{ '1', '2', '3', 'A'},
{ '4', '5', '6', 'B'},
{ '7', '8', '9', 'C'},
{ '*', '0', '#', 'D'}
};
byte rowPins[numRows] = { 9, 8, 7, 6 };
byte colPins[numCols] = { 5, 4, 3, 2 };
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

void setup() {
Serial.begin(9600);
pinMode(RED_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
lcd.init();
lcd.backlight();
lcd.print("Introdu parola:");
lcd.setCursor(0, 1);
Serial.println("Introdu parola:");
}

void loop()
{

char keypressed = myKeypad.getKey();


if (keypressed != NO_KEY)
{
Serial.print(keypressed);
lcd.print(keypressed);
if (keypressed != '#')
{
cod += keypressed;
}

else if (keypressed == '#')


{
if (cod == CORRECT_CODE)
{
stateRED = LOW;
stateGREEN = HIGH;
lcd.clear();
lcd.print("Correct ");
lcd.setCursor(0, 1);
Serial.println(" ");
Serial.println("Correct ");
cod = "";

}
else if (cod != CORRECT_CODE)
{
stateRED = HIGH;
stateGREEN = LOW;
lcd.clear();
lcd.print("Gresit");
lcd.setCursor(0, 1);
Serial.println(" ");
Serial.println("Gresit");
cod = "";

}
digitalWrite(RED_LED, stateRED);
digitalWrite(GREEN_LED, stateGREEN); }
}
}

diagram.jcon
{
"version": 1,
"author": "Владик К",
"editor": "wokwi",
"parts": [
{
"type": "wokwi-arduino-uno",
"id": "uno",
"top": -12.6,
"left": -17.8,
"rotate": 90,
"attrs": {}
},
{ "type": "wokwi-led", "id": "led1", "top": 6, "left": 234.2, "attrs": { "color": "red"
} },
{
"type": "wokwi-lcd1602",
"id": "lcd1",
"top": -204.8,
"left": -13.6,
"attrs": { "pins": "i2c" }
},
{ "type": "wokwi-membrane-keypad", "id": "keypad1", "top": -251.6, "left": 332, "attrs":
{} },
{ "type": "wokwi-led", "id": "led2", "top": 6, "left": 272.6, "attrs": { "color":
"green" } }
],
"connections": [
[ "led1:C", "uno:GND.1", "black", [ "v0" ] ],
[ "led1:A", "uno:13", "red", [ "v0" ] ],
[ "keypad1:R1", "uno:9", "green", [ "v0" ] ],
[ "uno:8", "keypad1:R2", "green", [ "h0" ] ],
[ "keypad1:R3", "uno:7", "green", [ "v0" ] ],
[ "keypad1:R4", "uno:6", "green", [ "v0" ] ],
[ "keypad1:C1", "uno:5", "green", [ "v0" ] ],
[ "keypad1:C2", "uno:4", "green", [ "v0" ] ],
[ "keypad1:C3", "uno:3", "green", [ "v0" ] ],
[ "keypad1:C4", "uno:2", "green", [ "v0" ] ],
[ "lcd1:VCC", "uno:5V", "red", [ "h-28.8", "v268.9" ] ],
[ "lcd1:GND", "uno:GND.2", "black", [ "h-19.2", "v288" ] ],
[ "led2:A", "uno:12", "green", [ "v0" ] ],
[ "uno:GND.1", "led2:C", "black", [ "h0" ] ],
[ "uno:A4", "lcd1:SDA", "green", [ "h-76.7", "v-341.4" ] ],
[ "lcd1:SCL", "uno:A5", "green", [ "h-48", "v345.9" ] ]
],
"dependencies": {}
}

S-ar putea să vă placă și