Pages: [1]   Go Down
Author Topic: Arduino168 + LCD + SDshield + LM35DZ  (Read 809 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Voici mon projet: enregistrer un signal, l'afficher et l'enregistrer. Le tout sans ordinateur et en continu.

J'ai un Arduino avec ATmega168, un capteur LM35DZ (avec un petit ampli OP), un LCD 16*2 et un SDshield



Je ne parviens pas à faire fonctionner le SDshield et le LCD en même temps! Je ne comprend pas pourquoi alors que séparément ils fonctionnent. La led "L" reste allumée, que cela signifie t'il? Comment comprendre ce qu'elle dit?

Voici une vidéo avec le projet:



Le code avec juste le LCD
Code:
#include <LiquidCrystal.h>
LiquidCrystal lcd(5, 0, 4, 3, 2, 1);

void setup(){
  lcd.begin(16, 2);  
}

void loop(){
  lcd.setCursor(2, 0);
  lcd.print("Temperature");
  lcd.setCursor(4, 1);

  lcd.print((0.0831*analogRead(0))+0.3692);
  delay(300);
  lcd.clear();
}


Le code avec juste la carte SD
Code:
#include <byteordering.h>
#include <fat.h>
#include <FAT16.h>
#include <fat_config.h>
#include <partition.h>
#include <partition_config.h>
#include <sd-reader_config.h>
#include <sd_raw.h>
#include <sd_raw_config.h>

FAT File;      
int heat = 0;
char heat_str[4] = "   ";

void setup(){
  File.initialize();
  File.create_file("arduino.txt");
  File.open();
}

void loop(){
  itoa(analogRead(0), heat_str, 10);
  File.write(heat_str);
  File.write(";");
  delay(1000);
}

Le code avec le LCD et la carte SD ne fonctionne pas smiley-sad mais pourquoi?
Code:
#include <byteordering.h>
#include <fat.h>
#include <FAT16.h>
#include <fat_config.h>
#include <partition.h>
#include <partition_config.h>
#include <sd-reader_config.h>
#include <sd_raw.h>
#include <sd_raw_config.h>
#include <LiquidCrystal.h>
FAT File;      
int heat = 0;
char heat_str[4] = "   ";


LiquidCrystal lcd(5, 0, 4, 3, 2, 1);

void setup(){
    lcd.begin(16, 2);  
  File.initialize();
  File.create_file("arduino.txt");
  File.open();
}

void loop(){
  lcd.setCursor(2, 0);
  lcd.print(analogRead(0));
  itoa(analogRead(0), heat_str, 10);
  File.write(heat_str);
  File.write(";");
  delay(1000);
}
« Last Edit: August 13, 2010, 06:17:21 am by maesp » Logged

France, Nice
Offline Offline
Full Member
***
Karma: 3
Posts: 194
www.Zartronic.fr
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Deux pistes :
- Un conflit d'utilisation de pin entre le sd et lcd
- programme trop gros avec les 2 librairies
D'où vient la libraire sd ?

A+
Logged


www.Zartronic.fr : Arduino & Robotique

France
Offline Offline
Newbie
*
Karma: 0
Posts: 7
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
- programme trop gros avec les 2 librairies
+1
Ou saturation du buffer ?
Du coup le programme s'exécute par intermittence...

Test en mettant un delay(); plus important peut être.
« Last Edit: August 13, 2010, 10:02:58 am by goes » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'utilise la librairie que j'ai trouvé ici:
http://blog.flamingoeda.com/wp-content/uploads/2009/12/FAT.zip
Sur ce blog:
http://www.emartee.com/Modules/bbs/viewthread.php?tid=58&extra=page%3D1

J'ai testé le code qu'il propose mais mon arduino n'est pas capable de le faire tourner. J'ai réduit le code au maximum et la ca fonctionne.

Existe t'il une librairie plus récente qui est moins lourde?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Après des journées de recherche j'ai trouvé cette librairie:

http://code.google.com/p/sdfatlib/

Elle est plus légère compatible avec le SD shield Emartee

a++
Logged

Pages: [1]   Go Up
Jump to: