Paso 11: Codificación - menú
para el ajuste se utiliza 1 perilla y botones de menú 2.
Botón 1:
Mantenga pulsado para entrar / salir del menú
Prensa del cortocircuito para el siguiente elemento del menú
Perilla (potenciómetro):
Gire el valor deseado de 0-100
Botón 2:
Guarda valor de potenciómetro como nuevo valor de configuración en EEPROM del Atmega328
botones de código desde aquí:
Aquí está el código del mismo:
MENÚ DE CONFIGURACIÓN *** / /
void menu() {}
interruptor (ModeCount) {/ / modecount es pulsación corta - cuántos tiempo = número de artículo de menú
caso 1: / / termostato de la caja de la pc
Si (Mode_firsttime == true) {/ / para dosent lazos innumerables veces pero sólo una vez
Mode_firsttime = false;
''' Lee el valor almacenado en rom '''/ /
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print (F ("ventilador de la CPU:"));
LCD.Print(EEPROM.Read(EEPthermostat));
LCD.Print (F("C"));
} / / fin si modo firsttime
''' actualizar después de 0.5 segundos '''/ /
Si (GPcurrenttime - prev_setting_display > = 500) {/ / 500 ms - 0,5 seg.
prev_setting_display = GPcurrenttime;
''' lectura ajuste valor del bote y lcd imprime si cambia de anterior '''/ /
settingpotfunc(); La función lee el valor de ajuste de pot
lcdnewvalue(); borra la fila inferior y muestra valor del pote
''' Buttton guarda en la EEProm'' ' / /
Si (potButtoncount == 1) {}
EEPROM.write (EEPthermostat, potvalue);
newvalueset(); borra lcd y muestra el nuevo valor ajustado
Mode_firsttime = true; Teml a volver a leer la eeprom para el último valor
potButtoncount = 0;
} / / fin si botón bote 1
} / / fin temporizador si
rotura; caso 1
//````````````````````THE END ``````````````````````````````````````//
***************************************************************************************************
OK ahora Cuál es es ajuste pot y lcd nueva función de valor:
funciones de asistencia a pequeñas
********************/
/ *** pot ajuste el botón Save guardar *** / /
void potButtons() {}
ya que es el Pin X5 (de 4015, cambiamos puertas (S0 2) según tabla de la hoja de datos para seleccionar esa entrada
PORTC = B00001010; sistemas analógicos pernos A1 alta
retardo (5);
Serial.Print("potbutton");
Serial.println(potButtoncount);
int potButton = digitalRead(SensorsInput);
Si (potButton! = potButtonstate) {}
Si (potButton == HIGH) {}
potButtoncount ++;
Si (potButtoncount > = 2) {}
potButtoncount = 0;
}
}
Delay(50); para evitar rebotes de botón
}
potButtonstate = potButton;
}
La perilla de volumen para poner valores ***
void settingpotfunc() {}
ya que es el Pin X1 (de 4015, cambiamos puertas (S0 a 2) de acuerdo a tabla de la hoja de datos para seleccionar esa entrada
PORTC = B00000010; sistemas analógicos pernos A1 alta
retardo (5);
''' Lee y lisa '''/
byte junkreads = analogRead(SensorsInput);
potvalue = map(analogRead(SensorsInput), 850, 0, 0, 102);
} / / fin de anular
void lcdnewvalue() {}
lcd.setCursor (0, 1);
LCD.Print("");
lcd.setCursor (0, 1);
LCD.Print ("nueva?:");
LCD.Print(potvalue);
Delay (50);
} / / fin de anular
void newvalueset() {}
lcd.setCursor (0, 1);
LCD.Print("");
lcd.setCursor (0, 1);
LCD.Print ("nuevo valor SET!");
Delay (500);
lcd.setCursor (0, 1);
LCD.Print("");
}