• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Wskazania poziomu lpg w aucie + zegarek
#21
Dobrze.
yhm żeby nie było próbowałem z 30min... nie da się tego pomiaru wyświetlić na ekranie? bo jak tak to zawsze można zapisać na karce zamiast na stację z laptopem jechać Smile
Jak chcesz to mogę ci wysłać za free DS1302 którego raczej nie użyje do niczego.
A jak się mają wejścia analogowe do czujników w OHM i NTC ?
 
Odpowiedź
#22
Kod:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlightpin, polarity

int Lmin = 512;
int Lmax = 512;

void setup() {

  Serial.begin(9600);
  lcd.begin(16,2);
  lcd.backlight();
  
}

void loop() {
  
  int sensorValue = analogRead(A0);
  
if ( sensorValue < Lmin )Lmin = sensorValue;
if ( sensorValue > Lmax )Lmax = sensorValue;

   lcd.setCursor(0, 0);
   lcd.print("RAW - ");
   lcd.print(sensorValue);
   lcd.print('/');
   lcd.print(sensorValue/4);
   lcd.print("    ");
  
   lcd.setCursor(0, 1);
   lcd.print(Lmin);
   lcd.print('/');
   lcd.print(Lmin/4);
   lcd.print("  ");
   lcd.print(Lmax);
   lcd.print('/');
   lcd.print(Lmax/4);
   lcd.print("    ");

  Serial.print("RAW - ");
  Serial.print(sensorValue);
  Serial.print("  OUT - ");
  Serial.print(sensorValue/4);
  Serial.print("  MIN - ");
  Serial.print(Lmin);
  Serial.print('/');
  Serial.print(Lmin/4);
  Serial.print("  MAX - ");
  Serial.print(Lmax);
  Serial.print('/');
  Serial.println(Lmax/4);
  delay(1);

}
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#23
Kurdę mam problem z ustawieniem czujnika.
Czy będzie problem jak z sygnału voltowego przejdzie się na sygnał 0-90 ohm? Bo ten czujnik nie ma wskazówki i na ślepo nie da się chyba ustawić.
 
Odpowiedź
#24
No spory bo ostatecznie i tak potrzebujesz pomiar a nie oporność

tu masz na deser działający kod

Kod:
//#include <ShiftRegLCD123.h>
//ShiftRegLCD123 lcd( 7, 6, SRLCD123);  

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlightpin, polarity


#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 rtc;
    
  int rok ;
  byte miesiac ;
  byte dzien ;
  byte godzina ;
  byte minuta ;
  byte sekunda ;
  long pm ;
  long zm ;
  byte Lcd = 2;
  int POM[10];
  byte x = 0 ;
  long Pm = 0 ;
  byte Srednia = 0 ;
  byte LPG = 0 ;


void setup () {

  lcd.begin(16,2);  
  lcd.backlight();            
  lcd.clear();

  Serial.begin(57600);
  
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    rtc.adjust(DateTime(2016, 5, 6, 18, 15, 0));
  }
}

void loop () {
  
  long cm = millis();
  
   if ( cm - zm > 10000 ){
      if (Lcd != 2){Lcd = 2;lcd.clear();zm = cm;}
      else if (Lcd != 1){Lcd = 1;lcd.clear();zm = cm;}
    }
  
  DateTime now = rtc.now();
    
    rok = now.year(),DEC;
    miesiac = now.month(),DEC;
    dzien = now.day(),DEC;
    godzina = now.hour(),DEC;
    minuta = now.minute(),DEC;
    sekunda = now.second(),DEC;
      
    if ( cm - pm >= 500 ){

     int pom = analogRead(A0)/4;
     POM[x] = pom ;
     x = x + 1 ;
     pm = cm ;
  }

if ( x > 9 ){
      
Srednia = (POM[0]+POM[1]+POM[2]+POM[3]+POM[4]+
      POM[5]+POM[6]+POM[7]+POM[8]+POM[9])/10 ;
      x = 0;}
  
LPG = map( Srednia,0,255,0,100 ); // podstaw za 2 pierwsze zmienne dla 0 min odczyt z czujnika

switch(Lcd){

case 1:
    
      lcd.setCursor(3, 0);
      lcd.print(zero(dzien));
      lcd.print('/');
      lcd.print(zero(miesiac));
      lcd.print("/");
      lcd.print(rok);
      lcd.print("  ");

      lcd.setCursor(4, 1);
      lcd.print(zero(godzina));
      lcd.print(":");
      lcd.print(zero(minuta));
      lcd.print(":");
      lcd.print(zero(sekunda));
      lcd.print("  ");
  break;

case 2:

      lcd.setCursor(0, 0);
      lcd.print("Poziom     LPG");
      lcd.setCursor(0, 1);
      lcd.print("zbiornika");
      lcd.setCursor(11, 1);
      lcd.print(sto(LPG));
      lcd.print('%');
  break;
}
}

int zero(int number) {
  
    if (number < 10){lcd.print('0');}
    return number;}

int sto(int number) {
  
    if (number < 100){lcd.print('0');}
    if (number < 10){lcd.print('0');}
    return number;}
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#25
o jaBig Grin Dziękuje.
A arduino mogę pod napięcie auta 12V wpiąć czy mniej voltów ma być? Bo końcówkę mam tą na "bolca". Nie mówimy o zasilaniu z USB tylko tego drugiego złącza.
Kod:
pr_ba.ino: In function 'void setup()':
pr_ba.ino:38:19: error: could not convert 'RTC_DS1307::begin()' from 'void' to 'bool'
pr_ba.ino:38:19: error: in argument to unary !
pr_ba.ino:45:49: error: no matching function for call to 'DateTime::DateTime(const __FlashStringHelper*, const __FlashStringHelper*)'
pr_ba.ino:45:49: note: candidates are:
In file included from pr_ba.ino:10:0:
C:\Users\IBM T410\Documents\Arduino\libraries\jcw-rtclib-39da61b/RTClib.h:12:5: note: DateTime::DateTime(const char*, const char*)
    DateTime (const char* date, const char* time);
    ^
C:\Users\IBM T410\Documents\Arduino\libraries\jcw-rtclib-39da61b/RTClib.h:12:5: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'const char*'
C:\Users\IBM T410\Documents\Arduino\libraries\jcw-rtclib-39da61b/RTClib.h:10:5: note: DateTime::DateTime(uint16_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
    DateTime (uint16_t year, uint8_t month, uint8_t day,
    ^
C:\Users\IBM T410\Documents\Arduino\libraries\jcw-rtclib-39da61b/RTClib.h:10:5: note:   candidate expects 6 arguments, 2 provided
C:\Users\IBM T410\Documents\Arduino\libraries\jcw-rtclib-39da61b/RTClib.h:9:5: note: DateTime::DateTime(long int)
    DateTime (long t =0);
    ^
C:\Users\IBM T410\Documents\Arduino\libraries\jcw-rtclib-39da61b/RTClib.h:9:5: note:   candidate expects 1 argument, 2 provided
C:\Users\IBM T410\Documents\Arduino\libraries\jcw-rtclib-39da61b/RTClib.h:7:7: note: DateTime::DateTime(const DateTime&)
class DateTime {
      ^
C:\Users\IBM T410\Documents\Arduino\libraries\jcw-rtclib-39da61b/RTClib.h:7:7: note:   candidate expects 1 argument, 2 provided
Błąd kompilacji.

Chyba coś panie nie tak działaBig Grin Ale dziś wieczorem jadę na miasto i mam pusty bak. Zaraz idę podłączyć to cudo i będzie wszystko wiadomo.
 
Odpowiedź
#26
Wywal wszystkie biblioteki zegara tu masz tą co działa w tym programie który ci dałem , korzystając z kilku naraz czasem wywołuje to między nimi konflikt .

RTClib-master.zip
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#27
A powiedź mi jeszcze tak.
Mam w aucie 2 czujniki DS18B20 NTC które działają przy kompie UKP ale nie chce mi się przełączać ekranów żeby zobaczyć temp. Czy można pod któreś wejście podłączyć oba czujniki i zrobić wyświetlanie obu temperatur?
 
Odpowiedź
#28
program który ci dałem ma 2 ekrany i przełącza się automatycznie , dopiszę 3 ekran i będzie z głowy .
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#29
Masz w załączniku zdjęcie ekranu przed tankowaniem i po tankowaniu. ten z zerami to pełen bak. 
No co dalej to się wymyśli bo wszystko chyba będzie złożone na wyświetlaczu 20x4 bo już zamówiłem. Za miesiąc pewnie będę mieć go.


Załączone pliki Miniatury
       
 
Odpowiedź
#30
i co z tych cyferek wynika? Voltomierz dla pełnego wskazał 0.2V a pusty 3.9V. Jak to się ma do tych cyferek? co podstawić i jak ogarnąć?
Cały czas szukam w programie miejsca w którym jest cokolwiek o przełączających się ekranach... nawet fajnie to wyszło.
Ustawiłem
LPG = map( Srednia,0,210,100,0 );
i się zobaczy co będzieSmile Zauważyłem aby, że jeżeli wejdzie napięcie większe jak 210 to wyświetli np. 255% albo coś takiego. A tak to wszystko super działaSmile
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości