AcquaPortal Forum Acquario Dolce e Acquario Marino

AcquaPortal Forum Acquario Dolce e Acquario Marino (http://www.acquariofilia.biz/forum.php)
-   Fai da te marino (http://www.acquariofilia.biz/forumdisplay.php?f=60)
-   -   Aquarduino: libreria "base" gestione plafoniera AGGIORNATA al 19/07/2013 (http://www.acquariofilia.biz/showthread.php?t=418418)

billykid591 24-07-2013 09:22

Quote:

Originariamente inviata da -GUIDO- (Messaggio 1062084031)
Quote:

Originariamente inviata da lionfish (Messaggio 1062083949)
Prova così..

plafo.perform(hour(), minute(), second());

mi da il medesimo errore

Così non potrà mai funzionare....devi prima dichiarare le variabili hour, minute e second e dargli un valore agganciandole ai relativi valori ritornati dal real time clock (il DS1307) e poi passarle a plafo.perform...ovviamente oltre all'RTC devi usare anche la libreria apposita (DS1307rc)

Niko79 24-07-2013 10:47

Quote:

Originariamente inviata da billykid591 (Messaggio 1062084043)
Quote:

Originariamente inviata da -GUIDO- (Messaggio 1062084031)
Quote:

Originariamente inviata da lionfish (Messaggio 1062083949)
Prova così..

plafo.perform(hour(), minute(), second());

mi da il medesimo errore

Così non potrà mai funzionare....devi prima dichiarare le variabili hour, minute e second e dargli un valore agganciandole ai relativi valori ritornati dal real time clock (il DS1307) e poi passarle a plafo.perform...ovviamente oltre all'RTC devi usare anche la libreria apposita (DS1307rc)

Esatto, a tal proposito ho aggiunto un commento sul codice di esempio.

lionfish 24-07-2013 11:03

Quote:

Originariamente inviata da -GUIDO- (Messaggio 1062084031)
Quote:

Originariamente inviata da lionfish (Messaggio 1062083949)
Prova così..

plafo.perform(hour(), minute(), second());

mi da il medesimo errore

cosa hai per controllare lorario?
rtc? di che tipo?
che librerie usi??

-GUIDO- 24-07-2013 15:27

Quote:

Originariamente inviata da lionfish (Messaggio 1062084141)
Quote:

Originariamente inviata da -GUIDO- (Messaggio 1062084031)
Quote:

Originariamente inviata da lionfish (Messaggio 1062083949)
Prova così..

plafo.perform(hour(), minute(), second());

mi da il medesimo errore

cosa hai per controllare lorario?
rtc? di che tipo?
che librerie usi??

tiny RTC I2c modules

lionfish 24-07-2013 15:45

Quote:

Originariamente inviata da Niko79 (Messaggio 1062084115)
Quote:

Originariamente inviata da billykid591 (Messaggio 1062084043)
Quote:

Originariamente inviata da -GUIDO- (Messaggio 1062084031)
Quote:

Originariamente inviata da lionfish (Messaggio 1062083949)
Prova così..

plafo.perform(hour(), minute(), second());

mi da il medesimo errore

Così non potrà mai funzionare....devi prima dichiarare le variabili hour, minute e second e dargli un valore agganciandole ai relativi valori ritornati dal real time clock (il DS1307) e poi passarle a plafo.perform...ovviamente oltre all'RTC devi usare anche la libreria apposita (DS1307rc)

Esatto, a tal proposito ho aggiunto un commento sul codice di esempio.

scusate immaginavo che era già configurato l'RTC.......


// io ho un libreria richiamata:

#include <DS1307RTC.h>

// definizione dell'indirizzo seriale del RTC I2C:

#define DS1307_ADDRESS 0x68

// ed una stringa che richiama i dati della libreria:

setSyncProvider(RTC.get);

anche se non c'è RTC con questa stringa prende un orario di riferimento 17:18 e funziona per circa 3 minuti poi ricomincia da 17:18

per mettere sul display l'orario io uso queste righe di codice:

lcd.setCursor(0,0);
if (day()<10) lcd.print("0");
lcd.print(day());
lcd.print("/");
if (month()<10) lcd.print("0");
lcd.print(month());
lcd.print("/");
//if (second()<10) lcd.print("0");
lcd.print(year());


lcd.setCursor(11,0);
if (hour()<10) lcd.print("0");
lcd.print(hour());
lcd.print(":");
if (minute()<10) lcd.print("0");
lcd.print(minute());
lcd.print(":");
if (second()<10) lcd.print("0");
lcd.print(second());

chiaramente "lcd" è dichiarato nella configurazione del display che è un i2C 20x4.

spero che possa aiutare a disposizione se serve.

matteociocca 24-07-2013 20:27

ciao a tutti..
nel costruire la mia plafo mi sono cimentato anch'io con arduino..
Però dato che non volevo scervellarmi col codice ho utilizzato questo..
Non so se conoscete il typhoon reef.. vi allego il link col codice utilizzato da me e da loro =)
codice typhoon reef

quello che ho fatto io è stato ricostruire il suo hardware e caricare il programma e gioco fatto ;)

-GUIDO- 24-07-2013 23:24

ciao Matteo!
non ho capito bene di cosa si tratta#24

matteociocca 25-07-2013 00:14

Ciao guido.. ecco qui, questo è il prodotto che vendono già bello che pronto
boostled
Dato che Arduino utilizza codice open source sul sito c'è anche tutto il codice che viene utilizzato, che sarebbe il link che ti ho postato prima.
Io ho acquistato i componenti per copiare l'hardware , cioè schermo, RTC, ecc e sono andato a ricostruirlo uguale. In questo modo ho caricato il codice pari pari (poi va bhe ho tradotto le scritte sullo schermo in italiano) e basta.. =)

-GUIDO- 25-07-2013 08:20

[QUOTE=lionfish;1062084441]
Quote:

Originariamente inviata da Niko79 (Messaggio 1062084115)
Quote:

Originariamente inviata da billykid591 (Messaggio 1062084043)
Quote:

Originariamente inviata da -GUIDO- (Messaggio 1062084031)
Quote:

Originariamente inviata da lionfish (Messaggio 1062083949)
Prova così..

plafo.perform(hour(), minute(), second());

mi da il medesimo errore

Così non potrà mai funzionare....devi prima dichiarare le variabili hour, minute e second e dargli un valore agganciandole ai relativi valori ritornati dal real time clock (il DS1307) e poi passarle a plafo.perform...ovviamente oltre all'RTC devi usare anche la libreria apposita (DS1307rc)

.........................
........................
cd.print("0");
lcd.print(minute());
lcd.print(":");
if (second()<10) lcd.print("0");
lcd.print(second());

chiaramente "lcd" è dichiarato nella configurazione del display che è un i2C 20x4.

spero che possa aiutare a disposizione se serve.

Purtroppo Lionfish sono troppo indietro con Arduino e per ora non capisco, mi rendo conto che
la soluzione di Matteo è piu pratica e realista. D'altro canto mi sono attrezzato con arduino e vorrei riuscire a farcela...insomma un bel dilemma.
Per capirci, ho un display 20x4 hd44.. compatibile e fino a ieri usavo liquidcristal ed i 16 pin, Hello world è il mio livello. Ieri mi è arrivato lcm1602 IIC per poter collegare l'lcd in i2c. E qui sono piantato#06
ho caricato questo semplice codice:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,16,2); // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
lcd.init(); // initialize the lcd

// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello, world!");
}

void loop()
{
}

importato la libreria liquidcristal_I2C
e collegato sda in a5 ed scl in a4 ma di Hello world manco l'ombra...ho provato altri pin, niente
#17

lionfish 25-07-2013 08:50

Quote:

Originariamente inviata da -GUIDO- (Messaggio 1062085167)

Purtroppo Lionfish sono troppo indietro con Arduino e per ora non capisco, mi rendo conto che
la soluzione di Matteo è piu pratica e realista. D'altro canto mi sono attrezzato con arduino e vorrei riuscire a farcela...insomma un bel dilemma.
Per capirci, ho un display 20x4 hd44.. compatibile e fino a ieri usavo liquidcristal ed i 16 pin, Hello world è il mio livello. Ieri mi è arrivato lcm1602 IIC per poter collegare l'lcd in i2c. E qui sono piantato#06
ho caricato questo semplice codice:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,16,2); // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
lcd.init(); // initialize the lcd

// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello, world!");
}

void loop()
{
}

importato la libreria liquidcristal_I2C
e collegato sda in a5 ed scl in a4 ma di Hello world manco l'ombra...ho provato altri pin, niente
#17

ho notato due cose:

la prima è che hai dichiarato il display sbagliato quindi invece di
LiquidCrystal_I2C lcd(0x20,16,2);
deve essere
LiquidCrystal_I2C lcd(0x20,20,4);

questo chiaramente se l'indirizzo del display 0x20 è corretto, il mio è uguale quindi suppongo che lo sia.

seconda cosa non hai dato la posizione dell testo da scrivere quindi prima di "Hello Word" ci va
lcd.setCursor(4,1) ;
Prova e fammi sapere. i pin dovrebbero essere corretti, un check facile è che se sono montati bene quando fai il reset dell'arduino ti si dovrebbe spegnere e riaccendere il display, se così non è allora hai i collegamenti sbagliati.

fammi sapere.


Tutti gli orari sono GMT +2. Attualmente sono le 21:52.

Powered by vBulletin versione 3.8.9
Copyright ©: 2000 - 2025, Jelsoft Enterprises Ltd.
Traduzione italiana Team: AcquaPortal
User Alert System provided by Advanced User Tagging v3.2.5 Patch Level 2 (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Copyright Zero Pixel Srl

Page generated in 0,09810 seconds with 13 queries