W tym przykładzie opiszę jak odczytać temperaturę z czujnika DS18B20 a następnie zapisać na kartę SD do pliku temp.csv.
– Arduino Nano lub odpowiednik,
– czujnik DS18B20
– rezystor 4,7kΩ
Opis połączeń:
Pin Arduino | Moduł SD |
D11 | MOSI |
D12 | MISO |
D13 | SCK |
D4 | CS |
Vcc | Vcc |
GND | GND |
Pin Arduino | Pin DS18B20 |
Vcc | Vcc |
D7 | Data |
GND | GND |
Schemat połączeniowy:
Potrzebne biblioteki:
Kod programu:
#include <SD.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define DS18B20 7
const int chipSelect = 4;
OneWire ourWire(DS18B20);
DallasTemperature sensors(&ourWire);
void setup()
{
Serial.begin(9600);
while (!Serial) {
;
}
Serial.print(„inicjacja karty SD… „);
pinMode(10, OUTPUT);
//init SD card
if (!SD.begin(chipSelect))
{
Serial.println(„blad karty, nie zainstalowana”);
return;
}
Serial.println(„karta zainicjowana.”);
sensors.begin();
}
void loop()
{
sensors.requestTemperatures();
// open the file.
File dataFile = SD.open(„temp.csv”, FILE_WRITE);
// if the file is available, write to it:
if (dataFile)
{
dataFile.println(sensors.getTempCByIndex(0));
dataFile.close();
}else
{
Serial.println(„blad otwarcia pliku temp.csv”);
}
}