Нужна помощь с DS1302 +LCD модуль
- Войдите на сайт для отправки комментариев
Ср, 01/07/2015 - 22:30
Дело в том что не как не получается вывести показания на дисплей теже часики на LCD модуль там всего 4 вывода +. - sda scl . а на стандартном примере
// DS1302: CE pin -> Arduino Digital 2
// I/O pin -> Arduino Digital 3
// SCLK pin -> Arduino Digital 4
LCD: DB7 -> Arduino Digital 6
// DB6 -> Arduino Digital 7
// DB5 -> Arduino Digital 8
// DB4 -> Arduino Digital 9
// E -> Arduino Digital 10
// RS -> Arduino Digital 11
как тут подключишь если все вот так вот выглядит и библиотека стоит не та а вот какая
#include <LiquidCrystal.h>
#include <LiguidCrystal_I2C> покажите пожалуйста про этот дисплей может где на форуме что есть киньте ссыл
и уроки кстати все про тот же дисплей (не про модуль).
спасибо
#include <LiquidCrystal.h>
#include <DS1302.h>
// Init the DS1302
DS1302 rtc(2, 3, 4);
// Init the LCD
LiquidCrystal lcd(11, 10, 9, 8, 7, 6);
void setup()
{
// Set the clock to run-mode, and disable the write protection
rtc.halt(false);
rtc.writeProtect(false);
// Setup LCD to 16x2 characters
lcd.begin(16, 2);
// The following lines can be commented out to use the values already stored in the DS1302
rtc.setDOW(FRIDAY); // Set Day-of-Week to FRIDAY
rtc.setTime(12, 0, 0); // Set the time to 12:00:00 (24hr format)
rtc.setDate(6, 8, 2010); // Set the date to August 6th, 2010
}
void loop()
{
// Display time centered on the upper line
lcd.setCursor(4, 0);
lcd.print(rtc.getTimeStr());
// Display abbreviated Day-of-Week in the lower left corner
lcd.setCursor(0, 1);
lcd.print(rtc.getDOWStr(FORMAT_SHORT));
// Display date in the lower right corner
lcd.setCursor(6, 1);
lcd.print(rtc.getDateStr());
// Wait one second before repeating :)
delay (1000);
}
Вот такая же фигня. Подключаю микрофон. Прошиваю скеч для мигания светодиодиком.. и микрофон нифига не работает. Не знаете почему?
https://yandex.ru/search/?text=liquidcrystal_i2c%20&clid=226466&lr=213
:)
Просто часы
#include <DS1302.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> // Init the DS1302 DS1302 rtc(2, 3, 4); // (RST, DAT, CLK) LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x3F for a 16 chars and 2 line display Time t; void setup() { // Set the clock to run-mode, and disable the write protection //Установка часов для запуска- rtc.halt(false); rtc.writeProtect(false); // The following lines can be commented out to use the values already stored in the DS1302 rtc.setTime(12, 00, 00); // Set the time to 12:00:00 (24hr format) } void loop() { t = rtc.getTime(); lcd.init(); // initialize the lcd lcd.backlight(); // включение подсветки lcd.setCursor(0, 0); // отступ первой строки слева 0 . lcd.print(rtc.getTimeStr()); // Время в формате час:минуты:секунды }Спасибо ща попробую что получится
Ошибка: lcd.init(); // initialize the lcd ?
Честно говоря не помю откуда брал библиотеку LiquidCrystal I2C , но по-моему всё-таки здесь : http://arduino-project.net/biblioteki-arduino/
Попробуйте примеры из неё.
И обратите внимание на название микросхемы PCF8574T (A), (AT) , у меня в одной посылке (5 шт.) три были с буквами Т , а ещё две АТ.
Соответственно разная адресация для Т
LiquidCrystal_I2C lcd(0x27,16,2), для АТLiquidCrystal_I2C lcd(0x3F,16,2)Начините с этого : http://arduino.ru/forum/programmirovanie/i-opyat-pro-lcd-i-pcf8574-nu-ni...
Удачи !
Вот за это огромное спасибо все заработало просто мне нужно было поставить 0х27,16,2 и вуаля :)
Еще один вопрос как вывести на экран к примеру 2 квадратика и чтоб один из квадратика мигнул как бы получается глазом
В начале раздела "Программирование" много об этом писали : http://arduino.ru/forum/programmirovanie/lcd-1602-i-svoi-simvoly
Ещё здесь : http://robocraft.ru/blog/arduino/503.html
Как-то так .
#include <Wire.h> // Добавляем необходимые библиотеки #include <LiquidCrystal_I2C.h> #include <dht11.h> dht11 DHT; // Объявление переменной класса dht11 #define DHT11_PIN 4 // Датчик DHT11 подключен к цифровому пину номер 4 byte degree[8] = // Битовая маска символа градуса { B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея void setup() { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.createChar(1, degree); // Создаем символ под номером 1 } void loop() { // Выводим показания влажности и температуры lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки lcd.print("humidity = %"); // Выводим текст lcd.setCursor(11, 0); lcd.print(DHT.humidity, 1); lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки lcd.print("temp = \1C"); // Выводим текст, \1 - значок градуса lcd.setCursor(11, 1); lcd.print(DHT.temperature,1); int chk; ; // Мониторинг ошибок chk = DHT.read(DHT11_PIN); // Чтение данных switch (chk){ case DHTLIB_OK: break; case DHTLIB_ERROR_CHECKSUM: lcd.clear(); lcd.print("Checksum error"); break; case DHTLIB_ERROR_TIMEOUT: lcd.clear(); lcd.print("Time out error"); break; default: lcd.clear(); lcd.print("Unknown error"); break; } delay(1000); }Помогите мне в этот скетч еще модуль реального времени ds1302 добавить плиз
Помогите мне в этот скетч еще модуль реального времени ds1302 добавить плиз
а смысл помогать, мы то умеем, а Вы не научитесь! с экраном закончили? сделали часики на milis?
прежде, чем подключать модуль, выведите часы простые, а потом с модулем разберитесь, а потом!!!! соединяйте.
просто часы я делал этот скетч с температорой и влажностью ошибки переправил а вот чтоб 2 скетча в один слить не могу 5 часов мучую один дисплей у же не работает 2 ой пока что живой так что нужна помощь (
просто часы я делал этот скетч с температорой и влажностью ошибки переправил а вот чтоб 2 скетча в один слить не могу 5 часов мучую один дисплей у же не работает 2 ой пока что живой так что нужна помощь (
опросили первое устрйство, получили переменные, вывели их на экран - какие могут быть сложности??? Могу посоветовать лишь одно, посылать в монитор порта переменные в контрольных точках и проверять их значения... типа
Serial.println(sensorValue);
Serial.println(VAL);
Serial.println(z );
Serial.println(x );
Serial.println(c );
Serial.println(v );
Serial.println("----" );
delay(2500);
просто часы я делал этот скетч с температорой и влажностью ошибки переправил а вот чтоб 2 скетча в один слить не могу 5 часов мучую один дисплей у же не работает 2 ой пока что живой так что нужна помощь (
я тоже недавно учился... :) посмотрите как организован loop () и убейте в своем коде все лишнее (для наглядности)
Вот как я сдела они будут работать ?
#include <DS1302.h> #include <Wire.h> // Добавляем необходимые библиотеки #include <LiquidCrystal_I2C.h> #include <dht11.h> dht11 DHT; // Объявление переменной класса dht11 #define DHT11_PIN 4 // Датчик DHT11 подключен к цифровому пину номер 4 byte degree[8] = // Битовая маска символа градуса { B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; DS1302 rtc(2, 3, 4); LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея Time t; void setup() { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.createChar(1,degree); // Создаем символ под номером 1 rtc.halt(false); rtc.writeProtect(false); rtc.setTime(17, 21, 00); } void loop() { t = rtc.getTime(); lcd.init(); lcd.backlight(); lcd.print(rtc.getTimeStr()); // Выводим показания влажности и температуры lcd.setCursor(0,0); // Устанавливаем курсор в начало 1 строки lcd.print("humidity = %"); // Выводим текст lcd.setCursor(11,0); lcd.print(DHT.humidity, 1); lcd.setCursor(0,1); // Устанавливаем курсор в начало 2 строки lcd.print("temp = \1C"); // Выводим текст, \1 - значок градуса lcd.setCursor(11,1); lcd.print(DHT.temperature,1); int chk; ; // Мониторинг ошибок chk = DHT.read(DHT11_PIN); // Чтение данных switch (chk){ case DHTLIB_OK: break; case DHTLIB_ERROR_CHECKSUM: lcd.clear(); lcd.print("Checksum error"); break; case DHTLIB_ERROR_TIMEOUT: lcd.clear(); lcd.print("Time out error"); break; default: lcd.clear(); lcd.print("Unknown error"); break; } delay(1000); }Ладно все понятно с вами(
Ладно все понятно с вами(
да Вам похеже в эту тему :)
Ладно все понятно с вами(
ну так с нами с самого начала все понятно.. ну не любим мы халявщиков.. пришел учиться, учись!
Ладно все понятно с вами(
ну так с нами с самого начала все понятно.. ну не любим мы халявщиков.. пришел учиться, учись!
именно УЧИТЬСЯ, остальное в разделе "ищу исполнителя"
а я и не ищу халяву я просто прошу показать как урок что ли а не написать скетч за меня (
выше - много чего почитать-подумать вам предложили....
...или конкретней-ужееееее ( точнее ) вопрос задавайте :)
а я и не ищу халяву я просто прошу показать как урок что ли а не написать скетч за меня (
для урока, Вы выбрали слишком ОБЪЕМНУЮ задачу, одно дело помочь с выводом на LCD другое, слепить два скетча, тем более, что вы еще с первым не разобрались (видно из ваше го "слепка скетчей")!!!
сделайте самые простые часы на millis на LCD!!! и покажите скетч... потом продолжим, а до того помогать мы просто не сможем.
UPD. не часы, а таймер!!
не ругайтесь я сам разберусь как не то раз тут не подсказывают по нармальному
...или конкретней-ужееееее ( точнее ) вопрос задавайте :)
конкретнее! :) пост 19 ... без комментариев
не ругайтесь я сам разберусь как не то раз тут не подсказывают по нармальному
никто и не ругается! вам вопрос, а вы в обиду... я пас из этой темы... (тоже обиделся :)))))
не ругайтесь я сам разберусь как не то раз тут не подсказывают по нармальному
зптЫе - очень важны в постах..... ибо только вам известен ход вашей мысли :(
...как и в коде :)-
не ругайтесь я сам разберусь как не то раз тут не подсказывают по нармальному
никто и не ругается! вам вопрос, а вы в обиду... я пас из этой темы... (тоже обиделся :)))))
вот и жертвы появились..... КАК типерь он сможет кому-то помочь ?
Гриша ! держись !!!! :)-
не ругайтесь я сам разберусь как не то раз тут не подсказывают по нармальному
зптЫе - очень важны в постах..... ибо только вам известен ход вашей мысли :(
...как и в коде :)-
Пробелы рекомендую тоже убрать.
не ругайтесь я сам разберусь как не то раз тут не подсказывают по нармальному
зптЫе - очень важны в постах..... ибо только вам известен ход вашей мысли :(
...как и в коде :)-
Пробелы рекомендую тоже убрать.
вот сюда нужно мне добавить часики посоветуй(
#include <Wire.h> // Добавляем необходимые библиотеки #include <LiquidCrystal_I2C.h> #include <dht11.h> dht11 DHT; // Объявление переменной класса dht11 #define DHT11_PIN 4 // Датчик DHT11 подключен к цифровому пину номер 4 byte degree[8] = // Битовая маска символа градуса { B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея void setup() { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.createChar(1, degree); // Создаем символ под номером 1 } void loop() { // Выводим показания влажности и температуры lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки lcd.print("Humidity = % "); // Выводим текст lcd.setCursor(11, 0); lcd.print(DHT.humidity, 1); lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки lcd.print("Temp = \1C "); // Выводим текст, \1 - значок градуса lcd.setCursor(11, 1); lcd.print(DHT.temperature,1); int chk; ; // Мониторинг ошибок chk = DHT.read(DHT11_PIN); // Чтение данных switch (chk){ case DHTLIB_OK: break; case DHTLIB_ERROR_CHECKSUM: lcd.clear(); lcd.print("Checksum error"); break; case DHTLIB_ERROR_TIMEOUT: lcd.clear(); lcd.print("Time out error"); break; default: lcd.clear(); lcd.print("Unknown error"); break; } delay(1000); }Ну что вы паритесь, вам Гриша в 16 посте все написал. Берете свои часы из первого поста, берете свой крайний код. Объединяете область инициализации, объединяете Setup-ы, дополняете loop двумя кодами, разделяете их delay-ми и будет у вас экран раз в секунду меняться - время, датчики. Как курсоры ставить и экран чистить, надеюсь сами разберетесь.
) вот так чтоли но не показывает что то (
#include <DS1302.h> #include <Wire.h> // Добавляем необходимые библиотеки #include <LiquidCrystal_I2C.h> #include <dht11.h> dht11 DHT; // Объявление переменной класса dht11 #define DHT11_PIN 4 // Датчик DHT11 подключен к цифровому пину номер 4 byte degree[8] = // Битовая маска символа градуса { B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея DS1302 rtc(2, 3, 4); // (RST, DAT, CLK) Time t; void setup(){ rtc.halt(false); rtc.writeProtect(false); rtc.setTime(17, 21, 00); lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.createChar(1, degree); // Создаем символ под номером 1 } void loop(){ t = rtc.getTime(); lcd.print(rtc.getTimeStr()); // Выводим показания влажности и температуры lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки lcd.print("Humidity = % "); // Выводим текст lcd.setCursor(11, 0); lcd.print(DHT.humidity, 1); lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки lcd.print("Temp = \1C "); // Выводим текст, \1 - значок градуса lcd.setCursor(11, 1); lcd.print(DHT.temperature,1); int chk; ; // Мониторинг ошибок chk = DHT.read(DHT11_PIN); // Чтение данных switch (chk){ case DHTLIB_OK: break; case DHTLIB_ERROR_CHECKSUM: lcd.clear(); lcd.print("Checksum error"); break; case DHTLIB_ERROR_TIMEOUT: lcd.clear(); lcd.print("Time out error"); break; default: lcd.clear(); lcd.print("Unknown error"); break; } delay(1000); }строка 40 delay(3000);
ну а так хоть правильно или что то не так сделал
Так время отображает или нет? У меня вашего модуля нет.
А к каким пинам, что подключено? Судя по коду, часы и DHT на одном пине висят((((
все работает теперь я не как не даганю как мне цыфры подвинуть влажности и температуры а то часы не полностью ведны
вот в этом блоке кода или ниже?
byte degree[8] = // Битовая маска символа градуса 09 { 10 B00111, 11 B00101, 12 B00111, 13 B00000, 14 B00000, 15 B00000, 16 B00000, 17 };Влаж= <-------------51 %
темер= <-------------29 C 17:
вот так я думаю надо здвинуть цыфры и часы появятся
lcd.setCursor(0, 0); и так далее
В строке 40 и строке 72 delay(3000); lcd.clear(); каждые три секунды должно менятся
вот за этот урок Вам большое спс))))) все работает ,но появилась задумка там у меня в верху свободная сторока появилась и думаю теперь сам попробую дни поставить но не совсем уж дни ) а буквы П В С Ч П С В и что самое главное на сделать так чтоб наступил день Пн и чтоб он мигал каждые 3 сек) круто ))
Для первого раза и поддержания задора это хорошо. А на самом деле, к танку привязали плуг для лошади и вспахиваем огород в три сотки. Примерно выглядит так. Читайте, анализируйте, пробуйте.