Recensisci!
Diventa un recensore per ricevere prodotti gratuiti o scontati!
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Adsense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
I postatori più attivi del mese
Admin
 
Answers
 

ERRORE LiquidCristal _I2C

Andare in basso

ERRORE LiquidCristal _I2C

Messaggio Da papat il Dom Set 11, 2016 5:32 pm

in questo sketch ho un errore su  lcd init,puoi aiutarmi?

Codice:
// libraries definition
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
 
 
 
// frequency musical notes
#define NOTE_C6  1047
#define NOTE_C3  131
#define NOTE_G3  196
 
// pins definition
int levelSensorPin = 0;
int moistureSensorPin = 1;
int audioPin = 2;
int soggyLEDPin = 3;
int moistsoilLEDPin = 4;
int drysoilLEDPin = 5;
int pumpLEDPin = 6;
int pumpPin = 7;
 
// variables
int levelSensorValue;       // stores the level sensor values
int moistureSensorValue;    // stores the moisture sensor values
int j = 0;
 
// system messages
const char *string_table[] =
{  
  "     Welcome! =)",
  "   Tank LOW level",
  "      Dry soil",
  "     Moist soil",
  "     Soggy soil",
  "The water pump is on",
  "   ArduinoByMyself",
  "   Watering System",
  "    Please wait!"
};
 
// objects definition
RTC_DS1307 RTC;
LiquidCrystal_I2C lcd(0x27,20,4);
 
 
void setup(){
  // serial initialization
  Serial.begin(9600);
 
  // LCD initialization
  lcd.init();         
  lcd.backlight();     // with Backlight
  lcd.clear();         // clearscreen
 
  // Wire initialization
  Wire.begin();
 
  // RTC initialization
  RTC.begin();
  if (!RTC.isrunning()){
    // date and time adjust as the PC computer date and time
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
 
  // Arduino pins initalization
  pinMode(audioPin, OUTPUT);
  pinMode(soggyLEDPin, OUTPUT);
  pinMode(moistsoilLEDPin,OUTPUT);
  pinMode(drysoilLEDPin,OUTPUT);
  pinMode(pumpLEDPin,OUTPUT);
  pinMode(pumpPin,OUTPUT);
 
  // LCD initial messages
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(string_table[6]);
  lcd.setCursor(0,1);
  lcd.print(string_table[7]);
  lcd.setCursor(0,3);
  lcd.print(string_table[0]);
  // initialization delay
  delay(5000);
}
 
 
void loop(){
 
 
  // RTC parameters definition
  DateTime myRTC = RTC.now();
  int H = myRTC.hour();
  int M = myRTC.minute();
  int S = myRTC.second();
 
  // call Clock Function
  //RightHour();
 
  // reads the sensors
  levelSensorValue = analogRead(levelSensorPin);
  moistureSensorValue = analogRead(moistureSensorPin);
 
  // if low water level: plays the low level alarm
  if(levelSensorValue > 600){
    // system messages
    lcd.clear();
    RightHour();
    lcd.setCursor(0,3);
    lcd.print(string_table[1]);
    // plays the alarm sound
    for(int i=0;i<2;i++){
      tone(audioPin, NOTE_G3, 200);
      delay(200);
      tone(audioPin, NOTE_C3, 200);
      delay(200);
      noTone(audioPin);
    }
  }
 
  // check the moisture range
  if(moistureSensorValue >= 700){
    // in case of dry soil:
    // system messages
    lcd.clear();
    RightHour();
    lcd.setCursor(0,3);
    lcd.print(string_table[2]);
    // lights up the correct LED
    digitalWrite(drysoilLEDPin,HIGH);
    digitalWrite(moistsoilLEDPin,LOW);
    digitalWrite(soggyLEDPin,LOW);
    // plays the alarm sound
    tone(audioPin, NOTE_C6, 100);
    delay(250);
    noTone(audioPin);
  }
  if((moistureSensorValue < 700) && (moistureSensorValue >= 300)){
    // in case of moist soil:
    // system messages
    lcd.clear();
    RightHour();
    lcd.setCursor(0,3);
    lcd.print(string_table[3]);
    // lights up the correct LED
    digitalWrite(drysoilLEDPin,LOW);
    digitalWrite(moistsoilLEDPin,HIGH);
    digitalWrite(soggyLEDPin,LOW);
    delay(250);
  }
  if(moistureSensorValue < 300){
    // in case of soggy soil:
    // system messages
    lcd.clear();
    RightHour();
    lcd.setCursor(0,3);
    lcd.print(string_table[4]);
    // lights up the correct LED
    digitalWrite(drysoilLEDPin,LOW);
    digitalWrite(moistsoilLEDPin,LOW);
    digitalWrite(soggyLEDPin,HIGH);
    delay(100);
  }
 
  // if the soil is dry and if it is the right time: turn on the pump for 1 minute
  if((H == 16) && (M == 50) && (S == 00)){
    while(moistureSensorValue >= 700){
      // system messages
      lcd.clear();
      RightHour();
      lcd.setCursor(0,1);
      lcd.print(string_table[8]);
      lcd.setCursor(0,3);
      lcd.print(string_table[5]);
      // turn the pump on
      digitalWrite(pumpPin,HIGH);
      digitalWrite(pumpLEDPin,HIGH);
      delay(10000);
      // if the soil is not moist so far
      // reads the moisture sensor once more
      moistureSensorValue = analogRead(moistureSensorPin);
    }
    // turn the pump off
    digitalWrite(pumpPin,LOW);
    digitalWrite(pumpLEDPin,LOW);
  }
 
}
 
// Real Time Clock Function
void RightHour()
{
  DateTime Now = RTC.now();
  String clock_date = "  Date: ";
  String clock_hour = "   Time: ";
 
  int _day = Now.day();
  int _month = Now.month();
  int _year = Now.year();
 
  clock_date += fixZero(_day);
  clock_date += "/";
  clock_date += fixZero(_month);
  clock_date += "/";
  clock_date += _year;
 
  int _hour = Now.hour();
  int _minute = Now.minute();
  int _second = Now.second();
 
  clock_hour += fixZero(_hour);
  clock_hour += ":";
  clock_hour += fixZero(_minute);
  clock_hour += ":";
  clock_hour += fixZero(_second);
 
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(clock_date);
  lcd.setCursor(0, 1);
  lcd.print(clock_hour);
 
  delay(500);
}
 
 
String fixZero(int i)
{
  String ret;
  if (i < 10) ret += "0";
  ret += i;
  return ret;
}
avatar
papat
Maker

Messaggi Messaggi : 183
Crediti Crediti : 281
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 71
Località Località : montalbano ionico

Visualizza il profilo

Torna in alto Andare in basso

Re: ERRORE LiquidCristal _I2C

Messaggio Da Admin il Dom Set 11, 2016 9:25 pm

Ciao, ricorda di inserire il codice nel TAG code:
Codice:
[code][/code]

Non ho ben capito il problema. Che cosa ti dice Ciao!?
avatar
Admin
♔ Amministratore

Messaggi Messaggi : 4308
Crediti Crediti : 12004
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 19
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Re: ERRORE LiquidCristal _I2C

Messaggio Da papat il Dom Set 11, 2016 9:38 pm

si ferma su lcd init la inea rosa nello sckecth,poi liquidCristal_I2c i seguito adesso non lo ricordo
avatar
papat
Maker

Messaggi Messaggi : 183
Crediti Crediti : 281
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 71
Località Località : montalbano ionico

Visualizza il profilo

Torna in alto Andare in basso

Re: ERRORE LiquidCristal _I2C

Messaggio Da papat il Dom Set 11, 2016 9:43 pm

whitin this context
avatar
papat
Maker

Messaggi Messaggi : 183
Crediti Crediti : 281
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 71
Località Località : montalbano ionico

Visualizza il profilo

Torna in alto Andare in basso

Re: ERRORE LiquidCristal _I2C

Messaggio Da Admin il Lun Set 12, 2016 2:20 pm

Ho visto che la parentesi del loop non si chiude Ciao!
avatar
Admin
♔ Amministratore

Messaggi Messaggi : 4308
Crediti Crediti : 12004
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 19
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Re: ERRORE LiquidCristal _I2C

Messaggio Da papat il Lun Set 12, 2016 3:37 pm

ho risolto era la libreria liquidCrystal_I2c che non era quella giusta.Ciao Grazie
avatar
papat
Maker

Messaggi Messaggi : 183
Crediti Crediti : 281
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 71
Località Località : montalbano ionico

Visualizza il profilo

Torna in alto Andare in basso

Torna in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum