Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include <PCD8544.h> // Removi
- //--------------------------------------------------------------
- #include "U8glib.h" // Inclui
- // ajustada conforme o display utilizado.
- U8GLIB_ST7920_128X64_1X u8g(6, 5, 4 , 7); //Enable, RW, RS, RESET Verifica se seu display está ligados nestes pinos
- int display = 1;
- //-----------------------------------------------------------------
- #include <SoftwareSerial.h>
- SoftwareSerial mySerial(10, 11); // RX, TX
- // criando as variaveis na global
- //======================================================================================================
- char state = 1; // variável que guarda posição atual do menu
- int sensorValue1, sensorValue2, sensorValue3, sensorValue4, sensorValue5, sensorValue6, sensorValue7, sensorValue8; // entradas analogica de A0 a A7
- // porta Analogicas
- // A0 sensorValue1 pressão combustivel
- // A1 sensorValue2 pressão oleo
- // A2 sensorValue3 temperatura motor
- // A3 temperatura
- float tensao = 0; // variaveis da tensão da bateria
- byte detecta = 2; // porta de detecção de rpm
- int contador = 0; // contador de rpm
- // Dimensão do lcd (in pixels)...
- static const byte LCD_WIDTH = 84;
- static const byte LCD_HEIGHT = 48;
- // O número de linhas para o gráfico de temperatura...
- static const byte CHART_HEIGHT = 5;
- // Um símbolo de "graus" customizado...
- static const byte DEGREES_CHAR = 1;
- static const byte degrees_glyph[] = { 0x00, 0x07, 0x05, 0x07, 0x00 };
- // A bitmap graphic (10x2) of a thermometer...
- static const byte THERMO_WIDTH = 10;
- static const byte THERMO_HEIGHT = 2;
- static const byte thermometer[] = { 0x00, 0x00, 0x48, 0xfe, 0x01, 0xfe, 0x00, 0x02, 0x05, 0x02,
- 0x00, 0x00, 0x62, 0xff, 0xfe, 0xff, 0x60, 0x00, 0x00, 0x00
- };
- //static PCD8544 lcd; // Removi
- //----------------------------------------------
- void draw(void)
- {
- /*
- // graphic commands to redraw the complete screen should be placed here
- u8g.setFont(u8g_font_unifont);
- //u8g.setFont(u8g_font_osb21);
- u8g.drawStr( 0, 22, "Hello World!");
- */
- u8g.setFont(u8g_font_unifont);
- u8g.drawStr( 0, 0, " BAT: ");
- // u8g.drawStr( 0, 2, tensao); // tensão da bateria
- u8g.drawStr( 8, 2, " V ");
- u8g.drawStr( 0, 4, "TANQUE: ");
- // u8g.drawStr( 8, 4, contador); // tensão da bateria
- u8g.drawStr( 14, 4, " Lts");
- u8g.drawStr( 0, 6, " TEMP:");
- // u8g.drawStr( 8, 6, temperaturaEmCelsius, 1);
- // u8g.drawStr( 16, 6, " \001C ");
- }
- //----------------------------------------------
- void setup()
- {
- // inicia o lcd nokia 5110
- // lcd.begin(LCD_WIDTH, LCD_HEIGHT); // Removi
- Serial.begin(9600);
- mySerial.begin(9600);
- // Registre o símbolo personalizado...
- // lcd.createChar(DEGREES_CHAR, degrees_glyph); // Removi
- // Botões
- pinMode(13, OUTPUT);
- digitalWrite(13, HIGH);
- pinMode(detecta, INPUT);
- digitalWrite(detecta, HIGH);
- contador = 0;
- attachInterrupt(0, DETECTA, FALLING);
- noInterrupts();
- // lcd.clear(); // Removi
- //---------------------------------------------------------------------- Acrescentei
- if ( u8g.getMode() == U8G_MODE_R3G3B2 )
- {
- u8g.setColorIndex(255); // white
- }
- else if ( u8g.getMode() == U8G_MODE_GRAY2BIT )
- {
- u8g.setColorIndex(3); // max intensity
- }
- else if ( u8g.getMode() == U8G_MODE_BW )
- {
- u8g.setColorIndex(1); // pixel on
- }
- else if ( u8g.getMode() == U8G_MODE_HICOLOR )
- {
- u8g.setHiColorByRGB(255, 255, 255);
- //--------------------------------------------------------------------------
- }
- }
- //-------------------------------------------
- void loop()
- {
- // processamento do contagiros
- unsigned long tempo = millis();
- while (tempo + 300 > millis())
- {
- interrupts();
- }
- digitalWrite(13, LOW);
- int rpm = contador;
- contador = contador * 100 ;
- // faz a varredura das portas analogicas
- //==============================================================
- sensorValue1 = analogRead(0); // analog input 0
- sensorValue2 = analogRead(1); // analog input 1
- sensorValue3 = analogRead(2); // analog input 2
- sensorValue4 = analogRead(3); // analog input 3
- sensorValue5 = analogRead(4); // analog input 4
- sensorValue6 = analogRead(5); // analog input 5
- sensorValue7 = analogRead(6); // analog input 6
- sensorValue8 = analogRead(7); // analog input 7
- // local onde manda os valores para a serial para tratamento no processing que sera enviada pelo bluetooh
- // tratamento da tensão da bateria para exibir no display
- //==============================================================
- tensao = sensorValue7 * 0.00488 ;
- tensao = tensao * 4 ;
- //mySerial.print("ola");// porta serial bluetooth para enviar dados trocado pela serial
- // exibi na tela os valores de tensão e nivel combustivel
- //==============================================================
- float Combustivel = (sensorValue3 * 0.25390625 * 100.0 / 1024 ) - 1.0;
- if (Combustivel > 8)
- {
- Combustivel = 0;
- }
- // tratamento da tensão da bateria para exibir no display
- //===============================================================
- float temperaturaEmCelsius = ( 5 * sensorValue2 * 100.0 / 1024);
- if (temperaturaEmCelsius > 150)
- {
- temperaturaEmCelsius = 150.0;
- }
- //================================================================
- /*
- Removi
- lcd.setCursor(0, LCD_HEIGHT/8 - THERMO_HEIGHT);
- lcd.drawBitmap(thermometer, THERMO_WIDTH, THERMO_HEIGHT);
- lcd.setCursor(0, 0);
- lcd.print(" BAT: ");
- lcd.print(tensao); // tensão da bateria
- lcd.print(" V ");
- lcd.setCursor(0, 2);
- lcd.print("TANQUE: ");
- lcd.print(contador); // tensão da bateria
- lcd.print(" Lts");
- lcd.print(" ");
- lcd.setCursor(14, 4);
- lcd.print(" TEMP:");
- lcd.setCursor(14, 5);
- lcd.print(temperaturaEmCelsius, 1);
- lcd.print(" \001C ");
- */
- //---------------------------------------------------------------------- Acrescentei
- u8g.firstPage();
- do
- {
- draw();
- }
- while ( u8g.nextPage() );
- //----------------------------------------------------------------------
- // local onde manda os valores para a serial para tratamento no processing
- // apenas para depuração na serial
- Serial.print(contador); // print rpm
- Serial.print(","); // print ','
- Serial.print(sensorValue1); // print sensor 1
- Serial.print(","); // print ','
- Serial.print(temperaturaEmCelsius); // print sensor 2
- Serial.print(","); // print ','
- Serial.print(Combustivel); // print sensor 3
- Serial.print(",");
- Serial.print(sensorValue4); // print sensor 4
- Serial.print(",");
- Serial.print(sensorValue5); // print sensor 5
- Serial.print(",");
- Serial.print(sensorValue6); // print sensor 6
- Serial.print(",");
- Serial.print(tensao); // print sensor 7
- Serial.print(",");
- Serial.println(sensorValue8); // print sensor 8 (println)
- }
- //========================================================================
- void DETECTA()
- {
- contador ++;
- Serial.print(contador);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement