Benvenuti sul Forum di AcquaPortal, la più grande community italiana di acquariofilia!
Sul Forum di AcquaPortal puoi discutere con altri appassionati di acquariofilia, tenere un tuo Blog personale, inserire foto e video, chattare, ed aiutarci a creare un grande database con schede di pesci, invertebrati e prodotti di acquariofilia.
Per entrar a far parte della comunità occorre registrarsi.
Per farlo premi su
Al momento della registrazione ti verrà richiesto di accettare il Regolamento che ti consigliamo di leggere attentamente.
Ti consigliamo inoltre di leggere le FAQ per apprendere le funzionalità principali del forum.
Se invece sei un utente registrato e hai dimenticato i tuoi dati di accesso devi effettuare il Recupero dati.
Fai da te marinoPer parlare delle tecniche di costruzione artigianale, per presentare le vostre realizzazioni, e per avere informazioni su dove reperire materiale ed attrezzatura risparmiando tempo e denaro.
ciao a tutti
dopo varie tribulazioni sono riuscito a far funzionare il display in SPI, ho preso un altro modulo ma nemmeno quello ne voleva sapere, fortunatamente avevo anche lapossibilità SPI
miracolo!
Ora posso studiare il codice e vedere se un giorno riuscirò anche a mettere in pratica
questo prezioso post!
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)
Ciao, ci ho provato anch'io, con lo stesso esito.
Ti spiegheresti meglio su questo argomento?
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)
Ciao, ci ho provato anch'io, con lo stesso esito.
Ti spiegheresti meglio su questo argomento?
Utilizzi un RTC ?
Posta lo spezzone di codice con cui visualizzi l'ora sul display o sulla seriale.
Aiuterà a capire ciò che, nel tuo codice, bisogna passare al metodo perform.
__________________
IO USERO' ACQUA DEL NOSTRO MARE
IO USERO' SABBIA DEL NOSTRO MARE
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)
Ciao, ci ho provato anch'io, con lo stesso esito.
Ti spiegheresti meglio su questo argomento?
Utilizzi un RTC ?
Posta lo spezzone di codice con cui visualizzi l'ora sul display o sulla seriale.
Aiuterà a capire ciò che, nel tuo codice, bisogna passare al metodo perform.
Bisogna tenere conto che la classe plafo creata da niko79 funziona solo con gli IDE Arduino dalla 1 in poi con gli IDE 22, 23 non funziona perchè non supportano le classi...NDR
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__));
}
Perfetto, dopo che hai creato le due schede inserendo rispettivamente l'interfaccia e l'implementazione della classe, importa la classe e crea l'oggetto plafo sul codice principale ad esempio cosi:
#include "Plafo.h"
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
Plafo plafo;
void setup(void) {
Serial.begin(57600);
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
RTC.adjust(DateTime(__DATE__, __TIME__));
}
//Channel,startHour,startMinute,endHour,endMinute,fadeLen,maxPWM,pin
plafo.setChannel(blue,18,0,4,0,30,180,7);//Dalle 18.00 alle 4.00, alba/tramonto 30 minuti, pwm massimo 180, pin 7
plafo.setChannel(white,18,15,3,45,75,180,5);//Dalle 18.15 alle 3.45, alba/tramonto 75 minuti
plafo.setChannel(uv,19,30,2,30,0,HIGH,22);//Dalle 19.30 alle 2.30, accensione immediata, pin 22 (digitale)
plafo.setChannel(moon,4,10,7,0,0,HIGH,23);//Dalle 4.10 alle 7.00
}
void loop(void) {
DateTime now = RTC.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(" since 1970 = ");
Serial.print(now.unixtime());
Serial.print("s = ");
Serial.print(now.unixtime() / 86400L);
Serial.println("d");
// calculate a date which is 7 days and 30 seconds into the future
DateTime future (now.unixtime() + 7 * 86400L + 30);
Serial.print(" now + 7d + 30s: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), DEC);
Serial.print(' ');
Serial.print(future.hour(), DEC);
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();
Serial.println();
delay(1000);
//Sostituire "hour","minute", "second" con le variabili dichiarate sul vostro progetto, che contengono rispettivamente l'ora, i minuti e i secondi correnti.
plafo.perform(8,0,0);
}
ma mi da una sfilza di errori...
il formato orario che inserisco a fine codice è corretto?
Scusa, ma come puoi immaginare sono proprio ai primordi.
------------------------------------------------------------------------
Ecco gli errori
codice:
Plafo\plafo.cpp.o: In function `Plafo::elapsedTimeToSecond(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)':
C:\Programmi\Arduino\libraries\Plafo/plafo.cpp:91: multiple definition of `Plafo::elapsedTimeToSecond(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)'
plafo.cpp.o:C:\DOCUME~1\Piero\IMPOST~1\Temp\build8057541304359831578.tmp/plafo.cpp:91: first defined here
c:/programmi/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
Plafo\plafo.cpp.o: In function `Plafo::performChannel(void*, unsigned char, unsigned char, unsigned char)':
C:\Programmi\Arduino\libraries\Plafo/plafo.cpp:49: multiple definition of `Plafo::performChannel(void*, unsigned char, unsigned char, unsigned char)'
plafo.cpp.o:C:\DOCUME~1\Piero\IMPOST~1\Temp\build8057541304359831578.tmp/plafo.cpp:49: first defined here
Plafo\plafo.cpp.o: In function `Plafo::perform(unsigned char, unsigned char, unsigned char)':
C:\Programmi\Arduino\libraries\Plafo/plafo.cpp:37: multiple definition of `Plafo::perform(unsigned char, unsigned char, unsigned char)'
plafo.cpp.o:C:\DOCUME~1\Piero\IMPOST~1\Temp\build8057541304359831578.tmp/plafo.cpp:37: first defined here
Plafo\plafo.cpp.o: In function `Plafo::elapsedTimeToSecond(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)':
C:\Programmi\Arduino\libraries\Plafo/plafo.cpp:91: multiple definition of `lastSecond'
plafo.cpp.o:C:\DOCUME~1\Piero\IMPOST~1\Temp\build8057541304359831578.tmp/plafo.cpp:91: first defined here
Plafo\plafo.cpp.o: In function `Plafo::elapsedTimeToSecond(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)':
C:\Programmi\Arduino\libraries\Plafo/plafo.cpp:91: multiple definition of `channels'
plafo.cpp.o:C:\DOCUME~1\Piero\IMPOST~1\Temp\build8057541304359831578.tmp/plafo.cpp:91: first defined here
Plafo\plafo.cpp.o: In function `Plafo::setChannel(int, unsigned char, unsigned char, unsigned char, unsigned char, unsigned int, unsigned char, unsigned char)':
C:\Programmi\Arduino\libraries\Plafo/plafo.cpp:24: multiple definition of `Plafo::setChannel(int, unsigned char, unsigned char, unsigned char, unsigned char, unsigned int, unsigned char, unsigned char)'
plafo.cpp.o:C:\DOCUME~1\Piero\IMPOST~1\Temp\build8057541304359831578.tmp/plafo.cpp:24: first defined here
Plafo\plafo.cpp.o: In function `Plafo':
C:\Programmi\Arduino\libraries\Plafo/plafo.cpp:14: multiple definition of `Plafo::Plafo()'
plafo.cpp.o:C:\DOCUME~1\Piero\IMPOST~1\Temp\build8057541304359831578.tmp/plafo.cpp:14: first defined here
Plafo\plafo.cpp.o: In function `Plafo':
C:\Programmi\Arduino\libraries\Plafo/plafo.cpp:14: multiple definition of `Plafo::Plafo()'
plafo.cpp.o:C:\DOCUME~1\Piero\IMPOST~1\Temp\build8057541304359831578.tmp/plafo.cpp:14: first defined here
Ultima modifica di Barclay; 08-02-2014 alle ore 17:37.
Motivo: Unione post automatica
Perche hai modificato il metodo perform cosi:
plafo.perform(8,0,0);
Devi lasciare come ti ho suggerito, inviando l'orario sempre aggiornato del RTC.
Hai inserito le due schede con l'interfaccia e l'implementazione della classe plafo ?
Dal messaggio di errore sembrerebbe che hai creato la classe da qualche altra parte.
__________________
IO USERO' ACQUA DEL NOSTRO MARE
IO USERO' SABBIA DEL NOSTRO MARE