Caros, bom dia!
Sou um NEWBIE nestas eletronicas, apesar de ter lidado já - há muitos anos - com PLCs Siemens em projetos na faculdade.
Estive a conhecer melhor o que é o ARDUINO e parece-me o sistema ideal para um projeto que já ando a magicar há algum tempo - o controlo do nivelamento de uma suspensão parcialmente pneumática. A ideia é complementar a suspensão normal de um veículo com os chamados "foles pneumáticos", muito comuns nos camiões.
O sistema seria composto por:
- 4 foles pneumáticos
- 3 válvulas 12V (2 para a frente / tras e 1 para descarga)
- 2 sensores de nível (0-5V)
- 1 keypad / teclado para indicar ao arduino qual a altura desejada (baixo, médio ou alto)
O código - conceptualmente - não será complicado:
Ao pressionar o "botão1", accionar
"valvula1" até que "sensorfrente" indique X volts
"valvula2" até que "sensortras" indique Y volts
Ao pressionar "botão2", accionar
"valvula3" durante tempo suficiente para os foles se esvaziarem.
A questão aqui é que não tenho os conhecimentos todos quanto à utilização de instruções com "FOR" ou "WHILE"... e para que este sistema funciona a 100%, é importante ter um código bem elaborado. Isto foi o que já escrevi...
Pins:
int Sensorfrtpin (analog)
int Sensortrapin (Analog)
int Valvfrtpin (digital)
int Valvtrapin (digital)
int Valvdescpin (digital)
int botao1pin (digital)
int botao2pin (digital)
Variables:
int sensfrtmax = 1023
int sensfrtmin = 0
int sensfrtval = 0
int senstramax = 1023
int senstramin = 0
int senstraval = 0
Setup:
sensorfrtval = AnalogRead (Sensorfrtpin)
sensortraval = AnalogRead (Sensortrapin)
PinMode (valvfrt, OUTPUT)
PinMode (valvtra, OUTPUT)
PinMode (valvdesc, OUTPUT)
PinMode (botao1, INPUT)
PinMode (botao2, INPUT)
Logical:
IF botao1 = HIGH && sensorfrt < *predefined upper limit* && sensortra < *predefined upper limit*
THEN
WHILE (sensorfrtval < *predefined upper limit*) {
digitalWrite (valvfrt, HIGH)
DELAY (100)
}
WHILE (sensortraval < *predefined upper limit*) {
DigitalWrite (valvtra, HIGH)
DELAY (100)
}
Agradeço desde já qualquer input / ajuda!
Abraços,
MR