Bonjour,
Je suis élève de Terminale STI2D option SIN. Dans le cadre de mon projet de fin d’année à présenter au bac, j’ai créer un projet portes faac qui consiste à compter le nombre de cycle d’ouvertures et de fermetures d’une porte et d’en extraire des statistiques sur une cartes SD.
Mon problème :
Mon programme a été créer à partir d’une carte ARDUINO. Le programme fonctionne, il est correctement téléchargé sur la carte SD. Le programme est correctement exécuté sur le moniteur série mais les statistiques ne sont pas enregistrées sur la carte SD. À la fin les statistiques ne sont donc pas enregistrées sur la carte SD.
J’aimerais savoir pourquoi rien ne s’écrit sur la carte SD alors que les programmes fonctionnent indépendamment les uns des autres, mais une fois fusionnés le programme global ne fonctionne plus.
Je joins mon programme pour avoir votre aide.
Merci par avance.
Bausades
PROGRAMME :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | #include <Wire.h> #include "DS1307.h" #include <SPI.h> #include <SD.h> #include <OneWire.h> #include "RTClib.h" RTC_DS1307 RTC; int pushButton = 2; int buttonState = 0; int total = 0; const int chipSelect = 10; File dataFile; DateTime now; DS1307 clock; void setup() { Serial.begin(9600); clock.begin(); Serial.begin(9600); pinMode(pushButton, INPUT); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); RTC.adjust(DateTime(__DATE__, __TIME__)); } if (!SD.begin(chipSelect)) { Serial.println("Pas de carte"); return; } Serial.begin(9600); now = RTC.now(); dataFile = SD.open("statistique.txt", FILE_WRITE); dataFile.print("total : "); dataFile.print(now.year(),DEC); dataFile.print('/'); dataFile.print(now.month(),DEC); dataFile.print('/'); dataFile.print(now.day(),DEC); dataFile.println(" "); dataFile.println("Tme Stats"); dataFile.close(); } void loop() { printTime(); } void printTime() { clock.getTime(); if (clock.hour < 8 && clock.minute > 30) { Serial.println("ce n'est pas l'heure"); delay(1000); } else { Serial.print(clock.hour, DEC); // Affichage heure Serial.print(":"); Serial.print(clock.minute, DEC); // Affichage minutes Serial.print(":"); Serial.print(clock.second, DEC); // Affichage secondes Serial.print(" "); Serial.print(clock.month, DEC); // Affichage mois Serial.print("/"); Serial.print(clock.dayOfMonth, DEC); // Affichage jours Serial.print("/"); Serial.print(clock.year+2000, DEC); // Affichage années Serial.print(" "); delay(500); } if (clock.hour > 20) { Serial.println("ce n'est plus l'heure"); delay(1000); } { now = RTC.now(); dataFile = SD.open("statistique.txt", FILE_WRITE); if (dataFile) { dataFile.print(total); dataFile.print(" "); dataFile.print(now.hour(),DEC); dataFile.print(":"); dataFile.print(now.minute(),DEC); dataFile.print(":"); dataFile.println(now.second(),DEC); dataFile.close(); Serial.println("Enregistrer"); } delay(1000); } Serial.println(total); int buttonState = digitalRead(pushButton); delay(1000); if (buttonState == 0) { total = total + 1; } else { } } |