Salve io sto lavorando a un progetto, vorrei collegare il seguente modulo https://www.sparkfun.com/products/10061 ad arduino. Attualmente ho già collegato il tutto usando un integrato Max232 per la conversione dei livelli, ma non capisco perchè la camera continui a non rispondere ai comandi che le mando (sempre che gli arrivino).
Qui lo spezzone di codice usato e il datasheet del modulo:
#include <SoftwareSerial.h>
byte incomingbyte;
SoftwareSerial mySerial(6, 8);
void SendResetCmd();
void SendTakePhotoCmd();
void Sync();
void setup()
{
Serial.begin(38400);
mySerial.begin(38400);
pinMode(6, INPUT);
pinMode(8, OUTPUT);
}
void loop()
{
SendResetCmd();
Sync();
delay(4000);
SendTakePhotoCmd();
int numberOfByte = mySerial.available(); //Qui sputa fuori sempre 0 e la risposta alle due righe seguenti è sempre FFFFFFFF
char c = mySerial.read();
Serial.println(c, HEX);
Serial.println(numberOfByte);
}
//Send Reset command
void SendResetCmd()
{
mySerial.print(0x56, HEX);
mySerial.print(0x00, HEX);
mySerial.print(0x26, HEX);
mySerial.print(0x00, HEX);
}
//Send take picture command
void SendTakePhotoCmd()
{
mySerial.print(0x56, HEX);
mySerial.print(0x00, HEX);
mySerial.print(0x36, HEX);
mySerial.print(0x01, HEX);
mySerial.print(0x00, HEX);
}
void Sync()
{
mySerial.print(0x36, HEX);
mySerial.print(0x32, HEX);
mySerial.print(0x35, HEX);
mySerial.print(0x0D, HEX);
mySerial.print(0x0A, HEX);
mySerial.print(0x49, HEX);
mySerial.print(0x6E, HEX);
mySerial.print(0x69, HEX);
mySerial.print(0x74, HEX);
mySerial.print(0x20, HEX);
mySerial.print(0x65, HEX);
mySerial.print(0x6E, HEX);
mySerial.print(0x64, HEX);
mySerial.print(0x0D, HEX);
mySerial.print(0x0A, HEX);
}