Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Ultimate Tester I
- //fabricado por MRS autos
- #include <LiquidCrystal.h>
- #define Buzzer 9
- #define Display 7
- #define sensor A2
- #define bH 3
- #define bL 4
- #define bUp 2
- #define bDown 5
- #define bH0 90
- #define bL0 91
- #define bUp0 92
- #define bDown0 93
- int Ventrada;
- float pressao;
- float voltagem;
- int sinal = 6;
- int pot = A1;
- unsigned int val = 0;
- float Duty;
- int Vduty;
- long freq;
- boolean aH, aL, aUp, aDown;
- char state = 1;
- LiquidCrystal lcd(13, 12, 11, 10, 8, 7);
- void setup()
- {
- lcd.begin(16, 2);
- pinMode(sinal, OUTPUT);
- pinMode(Display, OUTPUT);
- pinMode(Buzzer, OUTPUT);
- pinMode(bH, INPUT);
- pinMode(bL, INPUT);
- pinMode(bUp, INPUT);
- pinMode(bDown, INPUT);
- pinMode(pot, INPUT);
- digitalWrite(bH, HIGH);
- digitalWrite(bL, HIGH);
- digitalWrite(bUp, HIGH);
- digitalWrite(bDown, HIGH);
- digitalWrite(Display, HIGH);
- }
- void loop()
- {
- if (bH == HIGH) {
- digitalWrite(Buzzer, HIGH);
- delay(50);
- }
- if (bL == HIGH) {
- digitalWrite(Buzzer, HIGH);
- delay(50);
- }
- if (bUp == HIGH) {
- digitalWrite(Buzzer, HIGH);
- delay(50);
- }
- if (bDown == HIGH) {
- digitalWrite(Buzzer, HIGH);
- delay(50);
- }
- switch (state) {
- case 1:
- switch (CheckButton()) {
- case bH:
- lcd.clear(); Set_state(2);
- break;
- case bL:
- lcd.clear(); Set_state(1);
- break;
- case bUp:
- lcd.clear(); Set_state(3);
- break;
- case bDown:
- lcd.clear(); Set_state(7);
- break;
- default:
- Set_state(1);
- }
- break;
- case 2:
- switch (CheckButton()) {
- case bH:
- lcd.clear(); Set_state(2);
- break;
- case bL:
- lcd.clear(); Set_state(1);
- break;
- default:
- Set_state(2);
- }
- break;
- case 3:
- switch (CheckButton()) {
- case bUp:
- lcd.clear(); Set_state(7);
- break;
- case bDown:
- lcd.clear(); Set_state(1);
- break;
- case bH:
- lcd.clear(); Set_state(4);
- break;
- default:
- Set_state(3);
- }
- break;
- break;
- case 4:
- switch (CheckButton()) {
- case bUp:
- lcd.clear(); Set_state(6);
- break;
- case bDown:
- lcd.clear(); Set_state(5);
- break;
- case bL:
- lcd.clear(); Set_state(3);
- break;
- default:
- Set_state(4);
- }
- break;
- case 5:
- switch (CheckButton()) {
- case bL:
- lcd.clear(); Set_state(4);
- break;
- default:
- Set_state(5);
- }
- break;
- case 6:
- switch (CheckButton()) {
- case bL:
- lcd.clear(); Set_state(4);
- break;
- default:
- Set_state(6);
- }
- break;
- case 7:
- switch (CheckButton()) {
- case bH:
- lcd.clear(); Set_state(8);
- break;
- case bUp:
- lcd.clear(); Set_state(1);
- break;
- case bDown:
- lcd.clear(); Set_state(3);
- break;
- default:
- Set_state(7);
- }
- break;
- case 8:
- switch (CheckButton()) {
- case bL:
- lcd.clear(); Set_state(7);
- break;
- default:
- Set_state(8);
- }
- break;
- default: ;
- }
- }
- char CheckButton() {
- if (aH != digitalRead(bH)) {
- aH = !aH;
- if (aH) return bH0; else return bH;
- } else if (aL != digitalRead(bL)) {
- aL = !aL;
- if (aL) return bL0; else return bL;
- } else if (aUp != digitalRead(bUp)) {
- aUp = !aUp;
- if (aUp) return bUp0; else return bUp;
- } else if (aDown != digitalRead(bDown)) {
- aDown = !aDown;
- if (aDown) return bDown0; else return bDown;
- } else
- return 0;
- }
- void Set_state(char index) {
- state = index;
- switch (state) {
- case 1:
- lcd.setCursor(0, 0);
- lcd.print("Teste do sistema");
- lcd.setCursor(2, 1);
- lcd.print("common rail");
- break;
- case 2:
- Ventrada = analogRead (sensor);
- pressao = map(Ventrada, 102.3, 1023, 0, 2000);
- voltagem = map(Ventrada, 0, 1023, 0, 5000);
- lcd.setCursor(0, 0); //parte que le a pressão.
- lcd.print(pressao, 0);
- lcd.setCursor(4, 0);
- lcd.print("bar");
- lcd.setCursor(8, 0);
- lcd.print(voltagem, 0);
- lcd.setCursor(12, 0);
- lcd.print("mvs"); //parte que le a voltagem
- //parte que le a voltagem
- delay(100);
- val = analogRead(pot);//Le potenciometro
- val = val / 4;//converte valores de 1023 para 255 que é aceita na pwm
- analogWrite(sinal, val);//Escreve na porta pwm o valor
- delay(3);
- Vduty = analogRead(pot);
- Duty = map(Vduty, 0, 1023, 0, 100);
- lcd.setCursor(0, 1);
- lcd.print("Duty");
- lcd.setCursor(6, 1);
- lcd.print(Duty);
- lcd.setCursor(10, 1);
- lcd.print("% + ");
- delay(100);
- break;
- case 3:
- lcd.setCursor(2, 0);
- lcd.print("Teste de");
- lcd.setCursor(1, 1);
- lcd.print("solenoides");
- break;
- case 4:
- lcd.setCursor(5, 0);
- lcd.print("<--PWM");
- lcd.setCursor(5, 1);
- lcd.print("F.M-->");
- delay(100);
- break;
- case 5:
- val = analogRead(pot);//Le potenciometro
- val = val / 4;//converte valores de 1023 para 255 que é aceita na pwm
- analogWrite(sinal, val);//Escreve na porta pwm o valor
- delay(3);
- Vduty = analogRead(pot);
- Duty = map(Vduty, 0, 1023, 0, 100);
- lcd.setCursor(0, 1);
- lcd.print("Duty");
- lcd.setCursor(6, 1);
- lcd.print(Duty);
- lcd.setCursor(10, 1);
- lcd.print("% + ");
- break;
- case 6:
- val = analogRead(pot);
- freq = map(val, 0, 1023, 50, 50000);
- //freq = val;
- delay(3);
- lcd.setCursor(0,0);
- lcd.print(freq);
- lcd.print("HZ");
- delay(3);
- digitalWrite(sinal, LOW);
- delay((1000/freq) / 2);
- digitalWrite(sinal, HIGH);
- delay((1000/freq) / 2);
- break;
- case 7:
- lcd.setCursor(3,0);
- lcd.print("termometro");
- break;
- case 8:
- lcd.setCursor(2,0);
- lcd.print("EM BREVE");
- break;
- default: ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement