
Подключение LCD к Ардуино:
PIN1 on LCD ==>> PIN 12 on Arduino
PIN2 on LCD ==>> PIN 11 on Arduino
PIN3 on LCD ==>> PIN 10 on Arduino
PIN4 on LCD ==>> PIN 9 on Arduino
PIN5 on LCD ==>> PIN 8 on Arduino
PIN6 on LCD ==>> PIN 3.3 Volt on Arduino
PIN7 on LCD ==>> PIN 5 volt on Arduino
PIN8 on LCD ==>> PIN Ground on Arduino
Понадобятся:
1. Arduino Uno
2. DS18b20 Temperature Sensor.
3. Nokia 5110 LCD
Провода папы/мамы для соединений.
Библиотеки:
LCD5110_Graph_Library
DallasTemperature_Library
Скетч:
- Код: выделить все
/*
Проект для DS18b20 и Nokia 5110 LCD дисплея.
*/
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LCD5110_Graph.h>
#define ONE_WIRE_BUS 2
LCD5110 lcd(8,9,10,12,11);
extern unsigned char SmallFont[];
extern unsigned char BigNumbers[];
extern uint8_t borderRoundedIcon[];
char TempCelciusFahrenheit[6];
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float tempC = 0;
float tempF = 0;
void setup(void)
{
lcd.InitLCD();
sensors.begin();
}
void loop(void)
{
lcd.clrScr();
lcd.drawBitmap(0, 0, borderRoundedIcon, 84, 48);
sensors.requestTemperatures();
tempC = sensors.getTempCByIndex(0);
tempF = sensors.toFahrenheit(tempC);
// convertToString(tempF); //Фаренгейт, раскомментировать для отображения.
convertToString(tempC); //Градусы, закомментировать при использовании шкалы Фаренгейта.
lcd.setFont(BigNumbers);
lcd.print(TempCelciusFahrenheit,22,14); // Выводим доли градуса после нуля.
lcd.setFont(SmallFont);
lcd.print("Temp.Celc.",17,5); //Закомментировать для отображения шкалы Фаренгейта
// lcd.print("Temp.Fahr.",17,5); //Раскомментировать для отображения шкалы Фаренгейта
lcd.update();
delay(1000);
}
void convertToString(float number)
{
dtostrf(number, 3, 1, TempCelciusFahrenheit);
}