// LCD1602 to Arduino Uno connection example
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
char COM1_A[8] = "123.123";
char COM1_S[8] = "121.500";
int COM1_S_arr[4] = {1, 21, 5, 0};
#define ENCODER_CLK 2
#define ENCODER_DT 3
#define ENCODER_SW 4
#define BUTTON_PIN 6
boolean SW_STATE = HIGH;
boolean ESW_STATE = HIGH;
int MODE = 0;
void inttochar(const int *arr){
for (i = 0;i<=4;i++){
itoa(arr[i], cstr, 10);
}
COM1_S[]
}
void setup() {
lcd.begin(16, 2);
// you can now interact with the LCD, e.g.:
printall();
pinMode(BUTTON_PIN, INPUT_PULLUP);
// Initialize encoder pins
pinMode(ENCODER_CLK, INPUT);
pinMode(ENCODER_DT, INPUT);
pinMode(ENCODER_SW, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(ENCODER_CLK), readEncoder, FALLING);
}
void readEncoder() {
int dtValue = digitalRead(ENCODER_DT);
if (dtValue == HIGH) {
increase();
}
if (dtValue == LOW) {
// counter--; // Counterclockwise
}
}
void increase (){
switch (MODE) {
case 1:
lcd.setCursor(10,0);
lcd.blink();
break;
case 2:
// statements
break;
case 3:
// statements
break;
default:
// statements
break;
}
}
void switchCOM1(){
char tmp[8];
strcpy (tmp,COM1_A);
strcpy (COM1_A, COM1_S);
strcpy (COM1_S, tmp);
printall();
}
void printall(){
pCOM1_A(COM1_A);
pCOM1_S(COM1_S);
}
void pCOM1_A(const char *freq){
lcd.setCursor(0,0);
lcd.print(freq);
}
void pCOM1_S(const char *freq){
lcd.setCursor(9,0);
lcd.print(freq);
}
void loop() {
boolean sw_value = digitalRead(BUTTON_PIN);
if (SW_STATE != sw_value) {
SW_STATE = sw_value;
if (sw_value == HIGH) {
//Serial.println(" released");
}
if (sw_value == LOW) {
switchCOM1();
}
}
boolean esw_value = digitalRead(ENCODER_SW);
ESW_STATE = esw_value;
if (esw_value == HIGH) {
//Serial.println(" released");
}
if (esw_value == LOW) {
if (MODE <= 3) {
MODE ++;
}
else {
MODE = 0;
}
}
}