#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
// Define the I2C LCD object
LiquidCrystal_I2C lcd(0x27, 20, 4); // I2C address may vary, adjust if necessary
// Definirea pinilor pentru keypad
const byte ROW_NUM = 4; // Numărul de linii
const byte COLUMN_NUM = 4; // Numărul de coloane
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // Pinii pentru linii
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // Pinii pentru coloane
Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);
const int pressureMin = 10; // Presiunea minimă de lucru (în milibari)
const int pressureMax = 2500; // Presiunea maximă de lucru (în milibari)
const int pwmMin = 0; // Valoarea minimă a PWM-ului
const int pwmMax = 255; // Valoarea maximă a PWM-ului
int mapPressureToPWM(int pressure) {
// Maparea presiunii la valoarea PWM
return map(pressure, pressureMin, pressureMax, pwmMin, pwmMax);
}
void setup() {
// Inițializarea Serial Monitor pentru debug (opțional)
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key) {
// Când este apăsată o tastă de pe keypad
if (key >= '0' && key <= '9') {
// Dacă este o cifră, adăugăm-o la valoarea introdusă
static int pressureValue = 0;
pressureValue = pressureValue * 10 + (key - '0');
// Verificăm dacă valoarea introdusă depășește intervalul
if (pressureValue > pressureMax) {
pressureValue = pressureMax;
}
// Transformăm valoarea presiunii în PWM
int pwmValue = mapPressureToPWM(pressureValue);
// Setăm valoarea PWM pe supapa proportională de aer
analogWrite(10, pwmValue); // Pinul pentru PWM
// Afisam valorile pe Serial Monitor (opțional)
Serial.print("Presiune introdusa: ");
Serial.print(pressureValue);
Serial.print(" mbar | PWM: ");
Serial.println(pwmValue);
}
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
keypad:R1
keypad:R2
keypad:R3
keypad:R4
keypad:C1
keypad:C2
keypad:C3
keypad:C4
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C