Bonjour à tous !
Je suis nouveau sur ce forum et je débute sur arduino, veuillez me pardonner si certains de mes questions vous paraissent évidentes. ![]()
J’ai un projet qui est de relever la température d’un pneumatique de karting et d’enregistrer les valeurs sur une carte SD.
Pour cela j’ai acheté une platine qui intègre le capteur de température infrarouge MLX90614 et a les mêmes caractéristiques que l’arduino pro mini 3.3v. à l’aide de la librairie I2C j’ai réussi à récupérer la température et alimenter 4 Led en fonction de la température.
Me reste à enregistrer cette température sur une carte SD via le bus SPI et là je bloque.
J’utilise un shield SD LC studio comme celui-ci : http://duino4projects.com/wp-content/uploads/2013/03/Arduino-SD-Card-Logging-Shield.jpg
Le schéma de ma platine : http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Temp/MLX90614-IR_Eval-v16.pdf
Pour le branchement je branche
- le 3.3v de mon module « AVR_SPI_PRG » sur le 3.3v de la platine SD
- Le gnd de mon module « AVR_SPI_PRG » sur un des deux GND de la platine SD
- Le MISO de mon module « AVR_SPI_PRG » sur le MISO de la platine SD
- Le MOSI de mon module « AVR_SPI_PRG » sur le MOSI de la platine SD
-Le SCK de mon module « AVR_SPI_PRG » sur le SCK de la platine SD
Jusqu’ici ça paraît évident (sait-on jamais …)
-Je branche le RESET de mon module « AVR_SPI_PRG » sur le CS de la platine SD
Dans un premier temps est-ce que le branchement paraît cohérant (surtout au niveau RESET/CS) ?
J’ai ensuite pris le code dans la librairie SD ReadWrite
/*
SD card read/write
This example shows how to read and write data to and from an SD card file
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
This example code is in the public domain.
*/
#include <SPI.h>
#include <SD.h>
File myFile;
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
// On the Ethernet Shield, CS is pin 4. It's set as an output by default.
// Note that even if it's not used as the CS pin, the hardware SS pin
// (10 on most Arduino boards, 53 on the Mega) must be left as an output
// or the SD library functions will not work.
pinMode(10, OUTPUT);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
myFile = SD.open("test.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to test.txt...");
myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
// re-open the file for reading:
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
}
void loop()
{
// nothing happens after setup
}
J’ai comme tous débutants aurait fait testé ce code sur ma carte afin de voir s’il détectait au moins la carte SD, ce qui n’a bien sûr pas fonctionné, sur le moniteur série j’ai initialization failed!… Si le problème ne vient pas du branchement je suppose que le problème vient de la correspondance des Pins, Le Hic c’est que je ne trouve pas la correspondance des Pins de ma platine ( pour alimenter les leds j’ai fait au hasard pour trouver que PC0, PC1, PC2et PC3 correspondaient aux pins 14,15,16,17)
const int ledb = 14;
const int ledv = 15;
const int ledj = 16;
const int ledr = 17;
Je pense que le problème vient du fait que je débute et que j’ai sûrement pas cherché ou il faut mais que ce soit sur le schéma de la platine ou sur le schéma de la datasheet du ATmega328 je retrouve pas ces correspondances.
Si quelqu’un pouvait m’expliquer au moins la correspondance des Pins de ma platine et donc les Pins à remplacer sur le code SD ReadWrite.
j’utilise une carte SD 8GO il n’y a pas de capacité maximal à respecter ?
Merci d’avance,
