Show Posts
Pages: 1 2 [3] 4
31  Using Arduino / Programming Questions / Re: error: Wire.h: No such file or directory on: August 14, 2013, 07:41:18 am
Changed to
Quote
#include <Wire.h>
and things got worse

Quote
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:19: error: ISO C++ forbids declaration of 'start' with no type
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:19: error: prototype for 'int RTCReader::start()' does not match any in class 'RTCReader'
C:\Users\Username\Documents\Arduino\libraries\RTCReader\/RTCReader.h:11: error: candidate is: void RTCReader::start()
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:24: error: ISO C++ forbids declaration of 'end' with no type
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:24: error: prototype for 'int RTCReader::end()' does not match any in class 'RTCReader'
C:\Users\Username\Documents\Arduino\libraries\RTCReader\/RTCReader.h:12: error: candidate is: void RTCReader::end()
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:33: error: ISO C++ forbids declaration of 'setDateTime' with no type
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:33: error: prototype for 'int RTCReader::setDateTime(short int, short int, short int, short int, short int, short int, short int)' does not match any in class 'RTCReader'
C:\Users\Username\Documents\Arduino\libraries\RTCReader\/RTCReader.h:13: error: candidate is: void RTCReader::setDateTime(short int, short int, short int, short int, short int, short int, short int)
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:49: error: ISO C++ forbids declaration of 'getDateTime' with no type
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:49: error: prototype for 'int RTCReader::getDateTime(short int*, short int*, short int*, short int*, short int*, short int*, short int*)' does not match any in class 'RTCReader'
C:\Users\Username\Documents\Arduino\libraries\RTCReader\/RTCReader.h:14: error: candidate is: void RTCReader::getDateTime(short int*, short int*, short int*, short int*, short int*, short int*, short int*)
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:68: error: ISO C++ forbids declaration of 'decToBcd' with no type
C:\Users\Username\Documents\Arduino\libraries\RTCReader\RTCReader.cpp:68: error: prototype for 'int RTCReader::decToBcd(byte)' does not match any in class 'RTCReader'
C:\Users\Username\Documents\Arduino\libraries\RTCReader\/RTCReader.h:17: error: candidate is: byte RTCReader::decToBcd(byte)

so I think it would be useful to provide my code, just please help me get out of this

Header file
Code:
#ifndef RTCReader_h
#define RTCReader_h

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

class RTCReader
{
  public:
   RTCReader(int rtc_i2c_address);
   void start();
   void end();
   void setDateTime(short weekDay, short monthDay, short month, short year, short hours, short mins, short secs);
   void getDateTime(short* weekDay, short* monthDay, short* month, short* year, short* hours, short* mins, short* secs);
  
  private:
   byte decToBcd(byte val);
   byte bcdToDec(byte val);
   int RTC_I2C_ADDRESS;
   int regPtrReset;
};

#endif

cpp file
Code:
#include "Arduino.h"
#include "RTCReader.h"

// Arduino version compatibility Pre-Compiler Directives
#if defined(ARDUINO) && ARDUINO >= 100   // Arduino v1.0 and newer
#define I2C_WRITE Wire.write
#define I2C_READ Wire.read
#else                                   // Arduino Prior to v1.0
#define I2C_WRITE Wire.send
#define I2C_READ Wire.receive
#endif

RTCReader::RTCReader(int rtc_i2c_address)
{
  RTC_I2C_ADDRESS = rtc_i2c_address;
  regPtrReset = 0x00;
}

RTCReader::start()
{
  Wire.begin();
}

RTCReader::end()
{
  Wire.end();
}

// 1) Sets the date and time on the RTC
// 2) Starts the clock
// 3) Sets hour mode to 24 hour clock
// Assumes you're passing in valid numbers, Probably need to put in checks for valid numbers.
RTCReader::setDateTime(short weekDay, short monthDay, short month, short year, short hours, short mins, short secs)
{
  Wire.beginTransmission(RTC_I2C_ADDRESS);
  I2C_WRITE(regPointReset);
  I2C_WRITE(decToBcd(secs) & 0x7f);    // 0 to bit 7 starts the clock
  I2C_WRITE(decToBcd(mins));
  I2C_WRITE(decToBcd(hours));      // If you want 12 hour am/pm you need to set
  // bit 6 (also need to change readDateRTC)
  I2C_WRITE(decToBcd(weekDay));
  I2C_WRITE(decToBcd(monthDay));
  I2C_WRITE(decToBcd(month));
  I2C_WRITE(decToBcd(year));
  Wire.endTransmission();
}

// Gets the date and time from the RTC and prints result
RTCReader::getDateTime(short* weekDay, short* monthDay, short* month, short* year, short* hours, short* mins, short* secs)
{
  Wire.beginTransmission(RTC_I2C_ADDRESS);
  I2C_WRITE(regPointReset);
  Wire.endTransmission();
  
  Wire.requestFrom(RTC_I2C_ADDRESS, 7);

  // A few of these need masks because certain bits are control bits
  *secs     = bcdToDec(I2C_READ() & 0x7f);
  *mins     = bcdToDec(I2C_READ());
  *hours    = bcdToDec(I2C_READ() & 0x3f);  // Need to change this if 12 hour am/pm
  *weekDay  = bcdToDec(I2C_READ());
  *monthDay = bcdToDec(I2C_READ());
  *month    = bcdToDec(I2C_READ());
  *year     = bcdToDec(I2C_READ());
}

// Convert normal decimal numbers to binary coded decimal
RTCReader::decToBcd(byte val)
{
  return ((val / 10 * 16) + (val % 10));
}

// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val)
{
  return ((val / 16 * 10) + (val % 16));
}

the sketch
Code:
#include <RTCReader.h>

#define RTC_I2C_ADDRESS 0x68  // This is the I2C address

RTCReader rtcReader(RTC_I2C_ADDRESS);

short weekDay, monthDay, month, year, hours, mins, secs;
char  *Day[] = {"","Lun","Mar","Mer","Gio","Ven","Sab","Dom"};
char  *Mon[] = {"","Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"};

void setup()
{
  rtcReader.start();
  rtcReader.getDateTime(&weekDay, &monthDay, &month, &year, &hours, &mins, &secs);
  if (year == 0)
  {
    rtcReader.setDateTime(3, 14, 8, 2013, 13, 15, 0);
  }
}

void loop()
{
  rtcReader.getDateTime(&weekDay, &monthDay, &month, &year, &hours, &mins, &secs);
  
  if (hours < 10)
    Serial.print("0");
  Serial.print(hours, DEC);
  Serial.print(":");
  if (mins < 10)
    Serial.print("0");
  Serial.print(mins, DEC);
  Serial.print(":");
  if (secs < 10)
    Serial.print("0");
  Serial.print(secs, DEC);
  Serial.print("  ");
  Serial.print(Day[weekDay]);
  Serial.print(", ");
  Serial.print(monthDay, DEC);
  Serial.print(" ");
  Serial.print(Mon[month]);
  Serial.print(" 20");
  if (year < 10)
    Serial.print("0");
  Serial.println(year, DEC);
}
32  Using Arduino / Programming Questions / error: Wire.h: No such file or directory on: August 14, 2013, 07:17:01 am
Hi all, I'm going mad.

Really, I just wrote my first custom library to read from/write to my RTC Module (DS1307 + AT24C32).

I'm now trying to use it in my sketch, but I get an error saying:
Quote
error: Wire.h: No such file or directory

The Wire.h is imported in my header file using
Code:
#include "Wire.h"

Googling I found that this is a known issue reported here, but I couldn't believe there's not any workaround to face this lack.
So I googled again but couldnt find anything, and now I'm here asking for your help.

Can you help me please?
Thank you guys!
33  International / Generale / Re: Arduino UNO vs Leonardo on: January 20, 2013, 10:26:41 am
Ma volendo potrei scrivere un driver per riconsocere la UNO come una periferica di gioco?

quando scrivi
Quote
- Arduino UNO (o 2009)
l'arduino lo programmi in modo che abbia un output su seriale sulla base di input hardware che riceve (es. pressione dal tasto "A" sulla seriale printa "A")
lato "gioco" dovrai mettere un interrupt (non ricordo come si chiamano in programmazione microsoft, mi pare event) sulla porta seriale che quando riceve un carattere lo analizza e sulla base di ciò che legge fa ciò che deve.
pro: sistema semplice e più economico, programmazione di semplice livello sia lato arduino che C# (.net nell'import degli IO comprende le porte seriali direttamente)
contro: rischi di rallentare il codice, infatti ad ogni pressione vai a leggere la seriale, rischi di bloccare il programma. inoltre necessiti di un hardware appositamente programmato

intendi che bisogna appunto scrivere il codice che manda un determinato segnale tramite seriale ad un determinato movimento del controller, o intendi qualcos'altro?

poi mi domando, hai detto che rischio di rallentare il codice perchè devo controllare continuamente la coda della seriale, ma non avviene la stessa cosa anche con la Leonardo, anche se non sono io ad implementarla?
34  International / Generale / Re: Arduino UNO vs Leonardo on: January 20, 2013, 10:09:23 am
Guarda, considera che io parto con conoscienze praticamente nulle di elettronica.
SE la Leonardo è utilizzabile come programmatore ICSP (e non ho idea di come fare per saperlo), e SE non c'è troppo rischio di friggere il microcontrollore per uno che di resistenze non sa nulla, allora prenderei la Leonardo, altrimenti mi sa che mi conviene la UNO.

Sennò non è possibile fare il contrario? Prendere la UNO e crearmi più avanti la Leo?
35  International / Generale / Re: Arduino UNO vs Leonardo on: January 20, 2013, 09:44:07 am
Quindi a questo punto cosa mi consigliereste di prendere?
36  International / Generale / Re: Arduino UNO vs Leonardo on: January 19, 2013, 08:41:29 pm
Si beh non voglio usarlo solo come joystick, sicuramente non sarà tra le prime cose che farò.. Ho intenzione infatti di creare il cubo LED (troppo figo smiley-lol) e di utilizzare dei sensori di luminosità/gas/rumore, e con i dati raccolti tracciare un grafico temporale (magari della variazione del mio russare durante la notte smiley-lol)
quindi vorrei fare una scelta sulla base anche di queste necessità
37  International / Generale / Re: Arduino UNO vs Leonardo on: January 19, 2013, 07:41:21 pm
Lo WifiShield ufficiale è compatibile con la Leonardo perché comunica con il connettore ICSP aggiuntivo.
Il Data Logger non è uno shield ufficiale, è di Adafruit, ma il costruttore dichiara espressamente che è compatibile con la 2009, la UNO, la Leonardo ecc...
Quote
Works with Arduino UNO, Duemilanove, Diecimila, Leonardo or ADK/Mega R3 or higher. ADK/Mega R2 or lower are not supported.

EDIT:
ah, già. Come ho evidenziato in grassetto, la compatibilità è spesso riferita alla versione R3 delle schede. Devi controllare anche con che versione viene data la compatibilità.

Non avevo letto quella parte  smiley-red grazie  smiley-grin

Allora torno col dubbio >.<
Sono lungo nel prendere decisioni, consigliatemi! =)

Mi ispira anche il fatto di scrivermi il protocollo in C#, ma non vorrei partire con cose troppo complicate, non sapendo assolutamente nulla di porte seriali, COM, driver and stuff like that  smiley-eek

Voi che dite? Che mi prendo?
38  International / Generale / Re: Arduino UNO vs Leonardo on: January 19, 2013, 11:45:18 am
Ma gli shield "ufficiali" diciamo, sono compatibili tutti? O non è detto? Per esempio a me in futuro interesserebbe utilizzare almeno shield wifi e data logger, ma leggendo la documentazione, per quanto ne sappia meno di 0, mi par di capire che non sono compatibili con la Leonardo, perchè leggo che utilizzano i pin 11, 12 e 13...

Mi sa che allora andrò di UNO.

Grazie a tutti per i chiarimenti! =)
39  International / Generale / Re: Arduino UNO vs Leonardo on: January 19, 2013, 10:27:26 am
Mh allora a questo punto per cominciare penso mi prenderò la Leonardo, però mi spaventa il problema di incompatibilità che può avere dovuto ai pin diversi...
C'è un modo semplice per sapere quaoli shield non sono compatibili?

Grazie mille per l'aiuto ragazzi! =)
40  International / Generale / Re: Arduino UNO vs Leonardo on: January 19, 2013, 07:35:54 am
Mh la cosa mi tenta smiley-grin
Ma in pura seriale cosa significa? Non tramite il cavetto USB?
41  International / Generale / Re: Arduino UNO vs Leonardo on: January 19, 2013, 05:57:14 am
Invce con la UNO che giro bisognerebbe fare?
42  International / Generale / Re: Arduino UNO vs Leonardo on: January 19, 2013, 05:12:20 am
A me a questo punto interessava sapere se anche con l'UNO, collegato il joystick, posso far muovere un giochino sul pc, o se è fattibile solo con Leonardo
43  International / Generale / Re: Arduino UNO vs Leonardo on: January 18, 2013, 10:09:59 am
XNA è un framwork per lo sviluppo di videogiochi in ambiente .net.
Quindi mi confermate che se prendessi l'UNO potrei comunque comprare qualcosa di questo tipo e inviare i comandi al PC.
Certo mi sembrava parecchio assurdo...
Ma allora qual'è il vantaggio del Leonardo di preciso?
44  International / Generale / Re: Arduino UNO vs Leonardo on: January 18, 2013, 08:00:25 am
Grazie mille Uwe per la risposta.

Beh devo dire che la cosa mi disturba abbastanza. Non so quanto sia facile friggere il controllore, ma essendo alle prime armi potrebbe anche accadermi, e non vorrei dover comprare la scheda nuova...

A questo punto preferisco un controllore DIP. Ma allora avrei bisogno di sapere: se acquistassi l'UNO, potrei collegarci un joystick e usarlo per comandare tramite USB un giochino XNA?

Grazie ancora! =)
45  International / Generale / Arduino UNO vs Leonardo on: January 18, 2013, 05:46:19 am
Salve a tutti! =)
Ho deciso di iniziare questa avventura, e mi trovo innanzitutto a dover scegliere con quale scheda partire.
Ho considerato ovviamente la versione UNO, ma ho visto anche la Leonardo, con micro USB e ATmega32u4, che fornisce connessione USB diretta permettendo anche il riconoscimento come dispositivo USB.

Quindi volevo chiedervi, in confronto alla UNO, la scheda Leonardo porta solo vantaggi o perde su qualche altro fronte?
Perchè sempre nelle specifiche della Leonardo leggevo:

Quote
SPI: on the ICSP header. These pins support SPI communication using the SPI library. Note that the SPI pins are not connected to any of the digital I/O pins as they are on the Uno, They are only available on the ICSP connector. This means that if you have a shield that uses SPI, but does NOT have a 6-pin ICSP connector that connects to the Leonardo's 6-pin ICSP header, the shield will not work.

Essendo una materia nuova per me, significa che può avere delle incompatibilità con alcuni shield o altri componenti?

Ci sono altre differenze di potenzialità che non ho considerato?

Grazie in anticipo! =)
Pages: 1 2 [3] 4