- Milyen okostelefont vegyek?
- Honor Magic6 Pro - kör közepén számok
- Fotók, videók mobillal
- Megjött a jubileumi Pixel széria
- Nothing Phone (3) – tervezett kaotika
- Honor 200 Pro - mobilportré
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Apple Watch Sport - ez is csak egy okosóra
- iPhone topik
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Beggar
csendes tag
Ha jól értem, akkor igen, így csinálom. Nem az eredeti, hanem a CH340es Atmega328as nano és FTDI232 A328 mini lapokat használok. Az a furcsa, hogy eddig gond nélkül működtek ezek a lapok. Nem használtam őket néhány hónapja, de most 2 gépről is megpróbáltam, mindkét gépen mindkét lap ugyanezt produkálja.
-
Beggar
csendes tag
Sziasztok!
Ezzel a postal kapcsolatban tud segíteni valaki? [link]Köszönöm előre is!
-
Beggar
csendes tag
Sziasztok!
Már napok óta küzdök egy menüszerkezettel arduinoval, sehogy sem akarja a végleges formát ölteni. Eljutottam odáig, hogy a menüben már lehet mászkálni, de a kiválasztott almenü értékét nem tudom módosítani, kiolvasni memóriából rendesen. Ha valakinek van egy kész ötlete, azt is szívesen fogadom.A menü szerkezete így néz ki:
"Input Select"-
|- TV
|- Media Player
|- Instrument
|- Aux 1
|- Aux 2
Equalizer-
|- Bass (értéke lehet 0-63)
|- Treble (értéke lehet 0-63)
|- Balance (értéke lehet 0-63)
|- Loudness (értéke 0-1)Az én megoldásom részben a következő:
char* main_menu[] = {" Input Select ", " Equalizer "};
char* menu_items[2][6] = {
{" TV ", " Media Player ", " Instrument ", " Aux 1 ", " Aux 2 ", " Exit "},
{" Bass ", " Treble ", " Balance ", " Loudness ", " Exit " }
};
const int btn_up_pin = 9;
const int btn_down_pin = 8;
const int btn_enter_pin = 7;
const int btn_esc_pin = 6;
//const int backlight = 10;
const int lcd_contrast_pin = 11;
const int lcd_power_pin = 10;
const int backlight_value = 0;
// memoria címek ---------
const int addr_volume = 0;
const int addr_inp = 1;
const int addr_equ_0 = 2;
const int addr_equ_1 = 3;
const int addr_equ_2 = 4;
const int addr_equ_3 = 5;
// -----------------------
int on_menu = 0;
char* menu_item = "";
char* main_itme = "";
char* sub_item = "";
int main_menu_counter = 0;
int main_counter = 0;
int sub_menu_counter = 0;
int sub_counter = 0;
int volume_counter = 0;
int temp_value = 0;
int btn_up = 0;
int btn_down = 0;
int btn_enter = 0;
int btn_esc = 0;
long action_timer = 0;
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
void setup() {
Serial.begin(9600);
pinMode(btn_up_pin, INPUT);
pinMode(btn_down_pin, INPUT);
pinMode(btn_enter_pin, INPUT);
pinMode(btn_esc_pin, INPUT);
pinMode(lcd_contrast_pin, OUTPUT);
pinMode(lcd_power_pin, OUTPUT);
//analogWrite(backlight, backlight_value);
lcd.begin(16, 2);
on_menu = 0;
}
char mem_read(int mainmenu, int submenu = 0){
int ret_val = 0;
char ret_temp;
if(mainmenu == 0 && submenu == 0){
ret_val = EEPROM.read(1);
}
if(mainmenu == 1 && submenu == 0){
ret_val = EEPROM.read(2);
}
if(mainmenu == 1 && submenu == 1){
ret_val = EEPROM.read(3);
}
if(mainmenu == 1 && submenu == 2){
ret_val = EEPROM.read(4);
}
if(mainmenu == 1 && submenu == 3){
ret_val = EEPROM.read(5);
}
return ret_val;
}
void loop() {
btn_up = digitalRead(btn_up_pin);
btn_down = digitalRead(btn_down_pin);
btn_enter = digitalRead(btn_enter_pin);
btn_esc = digitalRead(btn_esc_pin);
if(on_menu > 0){
digitalWrite(lcd_power_pin, HIGH);
digitalWrite(lcd_contrast_pin, LOW);
}
if(on_menu == 0){
digitalWrite(lcd_power_pin, LOW);
analogWrite(lcd_contrast_pin, 254);
}
if(menu_item == " Exit ") {
if(on_menu == 1){
menu_item = "";
main_menu_counter = 0;
sub_menu_counter = 0;
on_menu = 0;
}
if(on_menu == 2){
menu_item = "";
sub_menu_counter = 0;
on_menu = 1;
}
}
if(on_menu == 1){ // -------------------------------------------------
if(btn_up == HIGH && on_menu == 1){
if(main_menu_counter < ((sizeof(main_menu)/2)-1)){
main_menu_counter++;
delay(250);
}
}
if(btn_down == HIGH && on_menu == 1){
if(main_menu_counter > 0){
main_menu_counter--;
delay(250);
}
}
lcd.setCursor(0,0);
lcd.write(main_menu[main_menu_counter]);
lcd.setCursor(0,1);
lcd.write(" ");
if(btn_enter == HIGH && on_menu == 1){
menu_item = main_menu[main_menu_counter];
main_counter = main_menu_counter;
on_menu = 2;
delay(250);
}
} // #################################################################
if(on_menu == 2){ // -------------------------------------------------
if(btn_up == HIGH && on_menu == 2){
if(sub_menu_counter < ((sizeof(menu_items[main_counter])/2)-1)){
sub_menu_counter++;
delay(250);
}
}
if(btn_down == HIGH && on_menu == 2){
if(sub_menu_counter > 0){
sub_menu_counter--;
delay(250);
}
}
lcd.setCursor(0,0);
lcd.write(main_menu[main_counter]);
lcd.setCursor(0,1);
lcd.write(menu_items[main_counter][sub_menu_counter]);
if(btn_enter == HIGH && on_menu == 2){
menu_item = menu_items[main_counter][sub_menu_counter];
sub_counter = sub_menu_counter;
on_menu = 3;
delay(250);
}
} // #################################################################
if(on_menu == 3){ // -------------------------------------------------
lcd.setCursor(0,0);
lcd.write(menu_items[main_counter][sub_counter]);
lcd.setCursor(1,1);
temp_value = mem_read(main_counter, sub_counter);
lcd.write(temp_value);
//lcd.write(" ");
} // #################################################################
if(on_menu == 0){
//analogWrite(backlight, 0);
lcd.setCursor(0,0);
lcd.write(" Home Amplifier ");
lcd.setCursor(0,1);
lcd.write(" ");
if(btn_enter == HIGH && on_menu == 0){
on_menu = 1;
delay(250);
}
}
if(btn_esc == HIGH){
menu_item = "";
main_menu_counter = 0;
sub_menu_counter = 0;
on_menu = 0;
}
Serial.print("on_menu: ");
Serial.print(on_menu);
Serial.print(" lcd_power_pin: ");
Serial.print(digitalRead(lcd_power_pin));
Serial.print(" temp_value: ");
Serial.print(temp_value);
Serial.println("");
delay(50);
} // loop endElőre köszönök minden nemű segítséget!
Új hozzászólás Aktív témák
Hirdetés
- ROG Strix G733PZ 17.3" QHD IPS Ryzen 9 7945HX RTX 4080 32GB 1TB NVMe gar
- Predator Helios Neo 16" QHD+ IPS i9-13900HX RTX 4060 16GB 1TB NVMe magyar vbill gar
- DJI AVATA 2 Fly More Combo drón - vadonatúj, aktiválatlan
- Crucial Ballistix 16 GB (2x8 GB) 3600 MHz CL16 DDR4-kit eladó
- Eladó Lenovo Legion Pro 5 16IRX9
- HIBÁTLAN iPhone 13 mini 256GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3179
- Xiaomi Redmi Note 14 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Azonnali készpénzes INTEL CPU NVIDIA VGA számítógép felvásárlás személyesen / postával korrekt áron
- Samsung Galaxy A32 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Konzol felvásárlás!! Playstation 5, Playstation 5 Pro
Állásajánlatok
Cég: FOTC
Város: Budapest