помогите доделать скетч.
- Войдите на сайт для отправки комментариев
Чт, 09/07/2015 - 14:47
Проблема вообщем такая,из кусков т.е. 3-х разных скетчей я сделал один.Мне нужно что б на экране выводилось время в верхней полосе после слова Time либо без него не важно,в нижней строке у меня показывается температура.и работает дальномер.Я не могу вывести часы на дисплей в мониторе порта часы идут правильно.прилагаю скетч и ссылку на фото.
file:///C:/Users/michail/Desktop/20150708233416.jpg
#include <LiquidCrystal.h>
#include <Wire.h>
#include "RTClib.h"
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); // инициализируем LCD, указывая контакты данных
// задаем переменные
int Count = 0; // счетчик обновлений
int tempPin = 0; // пин куда подключен датчик
float tempc = 0; // переменная для температуры
float maxi = 0, mini = 30;// max/min значения температуры
#define Trig 9
#define Echo 8
#define ledPin 13
RTC_DS1307 RTC;
void setup() {
// красивая "загрузка" программы при старте :)
lcd.begin(16, 2);
lcd.print("Hello,Sergei");
delay(1000); // ждем 1 секунды
lcd.print(".");
delay(1000); // ждем 1 секунды
lcd.print(".");
delay(1000); // ждем 1 секунды
lcd.print(".");
delay(2000); // ждем 2 секунды
lcd.begin(16, 2); //Дисплей 16Х2
lcd.setCursor(1, 0); //Установить 3 символ 0 строки
lcd.print("ARDUINO-clock"); // выводим надпись завтавки ARDUINO-clock
lcd.setCursor(2, 1); //Установить 5 символ 1 строки
lcd.print("temperature"); // выводим надпись завтавки temperature
delay(3000); // удерживаем заставку 3 секунды
pinMode(Trig, OUTPUT); //инициируем как выход
pinMode(Echo, INPUT); //инициируем как вход
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
/* задаем скорость общения. В нашем случае с компьютером */
Serial.begin(9600);
Wire.begin();
RTC.begin();
}
unsigned int impulseTime=0;
unsigned int distance_sm=0;
void loop() {
lcd.clear(); //очистка экрана
// считываем и вычисляем температуру
tempc = ( 4.1 * analogRead(tempPin) * 100.0) / 1024.0;
if(tempc > maxi) {
maxi = tempc;
} // max температура?
if(tempc < mini) {
mini = tempc;
} // min температура?
lcd.setCursor(0, 0);
lcd.print("Time-");
lcd.setCursor(4, 1); // устанавливаем курсор в 0-ом
// столбце, 1 строке (начинается с 4)
lcd.print("t=");
lcd.print(tempc); // выводим текущую температуру
delay(5*500); // задержка перед повторением измерений
Count++; // инкремент счетчика измерений
digitalWrite(Trig, HIGH);
/* Подаем импульс на вход trig дальномера */
delayMicroseconds(10); // равный 10 микросекундам
digitalWrite(Trig, LOW); // Отключаем
impulseTime=pulseIn(Echo, HIGH); // Замеряем длину импульса
distance_sm=impulseTime/58; // Пересчитываем в сантиметры
Serial.println(distance_sm); // Выводим на порт
if (distance_sm<45) // Если расстояние менее 45 сантиметром
{
// Определяем время
DateTime now = RTC.now();
// Выводим время в монитор порта
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
delay(1000);
else
{
digitalWrite(ledPin, LOW); // иначе не горит
}
delay(100);
/* ждем 0.1 секунды, Следующий импульс может быть излучён, только после исчезновения эха от предыдущего.
Это время называется периодом цикла (cycle period).
Рекомендованный период между импульсами должен быть не менее 50 мс. */
}
Повторяю: ссылка ведет на Ваш локальный компьютер :) У нас нет к нему доступа, да он нам, Михаил, и не нужен ;)
file:///C:/Users/michail/Desktop/20150708233416.jpg
сообщи свой айпишник.
file:///C:/Users/michail/Desktop/20150708233416.jpg
сообщи свой айпишник.
127.0.0.1
там на фото экран на нем все выглядит так
Time- (первая строчка)
t=26,43 (вторая строчка)
За чей счёт гуляем?
а сколько стоит нынче погулять?
а сколько стоит нынче погулять?
от 20$ в час.