помогите обьеденить два скечта в одну ардуино
- Войдите на сайт для отправки комментариев
Чт, 25/11/2021 - 08:47
часы работает
==============================================
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
приемник работает
====================================
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
две ардуино два екрана, хочу залить все в одну ардуино, два екрана чтобы работали помогите пож
https://www.youtube.com/watch?v=q1d3cpOg8oQ
Хотите - заливайте, что не получается-то?
ошибка, я так понял что нужно както дать определить ардуинке на какой екран что выводить а как ето правильно написать не знаю
как ето правильно написать не знаю
Придёца освоить Дао программиста.
ошибка, я так понял что нужно както дать определить ардуинке на какой екран что выводить а как ето правильно написать не знаю
судя по постановке вопроса - опыта в программировании чуть более чем ноль? - придется сначала выучить Си/С++ , а потом сможешь и свою задачку решить
судя по постановке вопроса - опыта в программировании чуть более чем ноль?
С чего сделан такой вывод? По моему - чуть меньше, чем ноль.
ошибка, я так понял что нужно както дать определить ардуинке на какой екран что выводить а как ето правильно написать не знаю
Какая, нахрен, ошибка? Где код? Где текст сообщения об ошибке? О чём вообще речь?
Знаете, Вы же делаете часы с приёмником? И по отдельности они работают, так?
Ну и НАХЕРА козе баян? Пихайте в корпус часов две ардуины и пусть они себе работаю независимо. Отличное решение! Другого Вы, не умея программировать от слова совсем, всё равно не потянете.
блин обосрать все умные а помочь я так понимаю никто не хочет
хочу в одну ардуинку запихнуть все , спасибо за помощ
блин обосрать все умные а помочь я так понимаю никто не хочет
Помогают тогда, когда человек что-то сам делает. Вы что-то делаете? - показывайте тогда
А если ждете, что кто-то вам готовый код выложит - на это не надейтесь
хочу в одну ардуинку запихнуть все , спасибо за помощ
хочите - запихивайте, мы не против
василий55 впихнем невпихуемое, но деньги вперед !
Феликс Шиндер и деньги вперёд.)
блин обосрать все умные а помочь я так понимаю никто не хочет
Я Вас не обсирал, а дал Вам действительно дельный совет - делайте на двух ардуинах. Это то, как Вы реально можете сделать устройство.
А то, что Вы "хотите" ... у Вас для таких хотелок знаний недостаточно.
хочу в одну ардуинку запихнуть все , спасибо за помощ
т.е. вы думаете, что достаточно скопировать это все в одну кучу и еще за пару минут что то быстренько докрутить ? ну так вы неправильно думаете, а думаете неправильно потому что представления не имеете о предмете, частенько подобное быстрее сделать заново с нуля, чем скрещивать ежа с ужом
решил по другому сделать на одну ардуино с екраном 16,2 на первую строчку температура с 433мгц, вторая строчка температура и влажность с HTU21D, работает с HTU21D, а первую строку пишет Temperat / что не так??? отдельно приемник на 433мгц работает сайт с приемником и скетчом http://sagis.ru/blog/?p=195 скейтч с HTU21D
#include <Arduino.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <HTU21D.h> HTU21D myHTU21D(HTU21D_RES_RH12_TEMP14); LiquidCrystal_I2C lcd(0x25,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { int counter = 0; while (myHTU21D.begin() != true && counter++ < 5) { delay(1000); } lcd.init(); // initialize the lcd lcd.backlight(); } void loop() { lcd.setCursor(0,0); lcd.print("Temp. : "); lcd.print(myHTU21D.readTemperature()); lcd.setCursor(0,1); lcd.print("Humidity: "); lcd.print(myHTU21D.readHumidity()); delay(500); }мой отредактированый скетч
#include <Arduino.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <HTU21D.h> #include <VirtualWire.h> // Пин светодиода const int led_pin = 13; //Пин приемника const int receive_pin = 11; uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; HTU21D myHTU21D(HTU21D_RES_RH12_TEMP14); LiquidCrystal_I2C lcd(0x25,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { int counter = 0; while (myHTU21D.begin() != true && counter++ < 5) { delay(1000); } lcd.init(); // initialize the lcd lcd.backlight(); vw_set_ptt_inverted(true); // Required for DR3100 //Скорость приема бит в секунду vw_setup(2000); // запускаем приемник vw_rx_start(); // Start the receiver PLL running pinMode(led_pin, OUTPUT); } void loop() { //Принимаем данные в буфер if (vw_get_message(buf, &buflen)) { // Зажигаем светодиод digitalWrite(led_pin, HIGH); // разбираем буфер и выводим данные на дисплей printbuf(); // Гасим светодиод digitalWrite(led_pin, LOW); } lcd.setCursor(0,1); lcd.print("tem "); lcd.print(myHTU21D.readTemperature()); lcd.setCursor(8,1); lcd.print("vla "); lcd.print(myHTU21D.readHumidity()); delay(500); } //---------------------------------------------------------- void printbuf(){ int i; int a=0; //Пока не кончилась длина буфера повторяем цикл for (i = 0; i < buflen; i++) { //Если встретили первую / значит сейчас пойдет температура if ((char) buf[i]=='/'){ if (a==0){ lcd.setCursor(0, 0); lcd.print("Temperat "); a++; } // Иначе влажность else { // Если / нет выводим данные lcd.print((char)buf[i]); } } } }заранее благодарен за ответ
первую строку пишет Temperat / что не так???
у вас там описана VirtualWire - а с чем оно связывается? Вы хоть проверяйте. в буфере-то что-то появляется при приеме? Может там и нет ничего - потому и не печатает.
связь работает светодиод 13 загорается и на екране пишет "Temperat / "
когда связи с передатчиком нету строка пуста и светодиод не загорается
на оригинальном скетче писало "Temperat 15,00" (например без символа /) а тут пишет симвл / без данных температуры
VirtualWire является библиотекой Arduino. Предназначена для отправки и приема коротких сообщений по широковещательной беспроводной связи, .я так понял она нужна?
сделал работает, но DHT22 врет примерно на два градуса, реально например -1, показівает +1. возможно переписать скейтч передатчика на HTU21D работает идеально и температура и влажность, а DHT22 влажность постоянно показывает 99,9% ???????
скетч передатчика
//Подключаем библиотеки #include <VirtualWire.h> #include "DHT.h" //Определяем пин светодиода const int led_pin = 13; //Определяем пин передатчика const int transmit_pin = 12; //Пин и тип датчика температуры #define DHTPIN 6 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); // объявляем массив char dataString [12]; //---------------------------------------------------------------- void setup() { vw_set_tx_pin(transmit_pin); vw_set_ptt_inverted(true); // скорость передачи бит в секунду vw_setup(2000); pinMode(led_pin, OUTPUT); //запуск датчика температуры dht.begin(); } //--------------------------------------------------------------- void loop() { // опрашиваем датчик температуры и влажности float h = dht.readHumidity(); float t = dht.readTemperature(); int h1 = (h-(int)h)*100; int t1 = (t-(int)t)*100; //Формируем буфер sprintf(dataString, "/%1d.%1d/%1d.%1d",int(t),t1,int(h),h1); // Включаем светодиод digitalWrite(led_pin, HIGH); // Передаем данные vw_send((uint8_t *)dataString, 12); //Ждем окончания отправки vw_wait_tx(); // Выключаем светодиод digitalWrite(led_pin, LOW); //отдыхаем 10 сек. delay(10000); }скетч на HTU21D по I2C работает
#include <Arduino.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <HTU21D.h> #include <VirtualWire.h> HTU21D myHTU21D(HTU21D_RES_RH12_TEMP14); LiquidCrystal_I2C lcd(0x25,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { int counter = 0; while (myHTU21D.begin() != true && counter++ < 5) { delay(1000); } lcd.init(); // initialize the lcd lcd.backlight(); } void loop() { lcd.setCursor(0,1); lcd.print("tem "); lcd.print(myHTU21D.readTemperature()); lcd.setCursor(8,1); lcd.print("vla "); lcd.print(myHTU21D.readHumidity()); delay(500); }ЗАРАНЕЕ БЛАГОДАРЕН ЗА ОТВЕТЫ
ЗАРАНЕЕ БЛАГОДАРЕН ЗА ОТВЕТЫ
Какие ответы?
Разве в посте был хоть один вопрос?
а по сути помочь можете???
Разве в посте был хоть один вопрос?
Я полагаю вопрос вот этот:
И, полагаю, ответ очевиден - возможно. ))
и помочь ктото может или как???
а по сути помочь можете???
задайте вопрос по сути и я на него по сути отвечу, если смогу.
Пока же, какие вопросы, такие и ответы.
и помочь ктото может или как???
Может и может кто то помочь, а может "или как"...
Выслушаю, и помогу сформулировать вопрос. 3000р
и помочь ктото может или как???
откуда ты вылез, замшелый?
Если с датчиком HTU работает. то видимо проще всего туда добавить передатчик:
#include <Arduino.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <HTU21D.h> #include <VirtualWire.h> //Определяем пин передатчика const int transmit_pin = 12; // объявляем массив char dataString [12]; HTU21D myHTU21D(HTU21D_RES_RH12_TEMP14); LiquidCrystal_I2C lcd(0x25,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { vw_set_tx_pin(transmit_pin); vw_set_ptt_inverted(true); // скорость передачи бит в секунду vw_setup(2000); int counter = 0; while (myHTU21D.begin() != true && counter++ < 5) { delay(1000); } lcd.init(); // initialize the lcd lcd.backlight(); } void loop() { float h = myHTU21D.readHumidity(); float t = myHTU21D.readTemperature(); int h1 = (h-(int)h)*100; int t1 = (t-(int)t)*100; //Формируем буфер sprintf(dataString, "/%1d.%1d/%1d.%1d",int(t),t1,int(h),h1); // Передаем данные vw_send((uint8_t *)dataString, 12); //Ждем окончания отправки vw_wait_tx(); lcd.setCursor(0,1); lcd.print("tem "); lcd.print(t); lcd.setCursor(8,1); lcd.print("vla "); lcd.print(h); delay(500); }часы работает, приемник работает, две ардуино два екрана, хочу залить все в одну ардуино, два екрана чтобы работали помогите пож
Ниуха, как я понимаю, не работает. Но - ПОМОГИТЕ?
Напишите алгоритм Вашей программы. А не это г-но, что Вы представили, скопирастив...
работает, одна ардуино один екран часы 16,2 на весь екран на две строки часы на 1307, на 433мгц принимает температуру уличную на другой екран работает, но передатчик с улицы построен на одной ардуине nano и датчика DHT22, мне он не понравился, врет на два градуса, хочу поменять его на HTU21D, он работает отлично температ и влажность, то и спросил можна переписать, вот и все, а кто не верит то могу сбросить фото видео
работает, одна ардуино один екран часы 16,2 на весь екран на две строки часы на 1307, на 433мгц принимает температуру уличную на другой екран работает, но передатчик с улицы построен на одной ардуине nano и датчика DHT22, мне он не понравился, врет на два градуса, хочу поменять его на HTU21D, он работает отлично температ и влажность, то и спросил можна переписать, вот и все, а кто не верит то могу сбросить фото видео
этот код не подошёл?
ето код передатчика может я ошибаюсь но я так понимаю что нужно его переделать под другой датчик, правильно, в приемнику переделывать ничего не нужно????
код передатчика
//Подключаем библиотеки #include <VirtualWire.h> #include "DHT.h" //Определяем пин светодиода const int led_pin = 13; //Определяем пин передатчика const int transmit_pin = 12; //Пин и тип датчика температуры #define DHTPIN 6 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); // объявляем массив char dataString [12]; //---------------------------------------------------------------- void setup() { vw_set_tx_pin(transmit_pin); vw_set_ptt_inverted(true); // скорость передачи бит в секунду vw_setup(2000); pinMode(led_pin, OUTPUT); //запуск датчика температуры dht.begin(); } //--------------------------------------------------------------- void loop() { // опрашиваем датчик температуры и влажности float h = dht.readHumidity(); float t = dht.readTemperature(); int h1 = (h-(int)h)*100; int t1 = (t-(int)t)*100; //Формируем буфер sprintf(dataString, "/%1d.%1d/%1d.%1d",int(t),t1,int(h),h1); // Включаем светодиод digitalWrite(led_pin, HIGH); // Передаем данные vw_send((uint8_t *)dataString, 12); //Ждем окончания отправки vw_wait_tx(); // Выключаем светодиод digitalWrite(led_pin, LOW); //отдыхаем 10 сек. delay(10000); }что поправить переписать чтобы работал на HTU21D????
вот в чем вопрос может ктото помочь????
код передатчика
//Подключаем библиотеки #include <VirtualWire.h> #include "DHT.h" //Определяем пин светодиода const int led_pin = 13; //Определяем пин передатчика const int transmit_pin = 12; //Пин и тип датчика температуры #define DHTPIN 6 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); // объявляем массив char dataString [12]; //---------------------------------------------------------------- void setup() { vw_set_tx_pin(transmit_pin); vw_set_ptt_inverted(true); // скорость передачи бит в секунду vw_setup(2000); pinMode(led_pin, OUTPUT); //запуск датчика температуры dht.begin(); } //--------------------------------------------------------------- void loop() { // опрашиваем датчик температуры и влажности float h = dht.readHumidity(); float t = dht.readTemperature(); int h1 = (h-(int)h)*100; int t1 = (t-(int)t)*100; //Формируем буфер sprintf(dataString, "/%1d.%1d/%1d.%1d",int(t),t1,int(h),h1); // Включаем светодиод digitalWrite(led_pin, HIGH); // Передаем данные vw_send((uint8_t *)dataString, 12); //Ждем окончания отправки vw_wait_tx(); // Выключаем светодиод digitalWrite(led_pin, LOW); //отдыхаем 10 сек. delay(10000); }что поправить переписать чтобы работал на HTU21D????
вот в чем вопрос может ктото помочь????
василий55 не читатель василий55 писатель
#include <Arduino.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <HTU21D.h> #include <VirtualWire.h> //Определяем пин передатчика const int transmit_pin = 12; // объявляем массив char dataString [12]; HTU21D myHTU21D(HTU21D_RES_RH12_TEMP14); LiquidCrystal_I2C lcd(0x25,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { vw_set_tx_pin(transmit_pin); vw_set_ptt_inverted(true); // скорость передачи бит в секунду vw_setup(2000); int counter = 0; while (myHTU21D.begin() != true && counter++ < 5) { delay(1000); } lcd.init(); // initialize the lcd lcd.backlight(); } void loop() { float h = myHTU21D.readHumidity(); float t = myHTU21D.readTemperature(); int h1 = (h-(int)h)*100; int t1 = (t-(int)t)*100; //Формируем буфер sprintf(dataString, "/%1d.%1d/%1d.%1d",int(t),t1,int(h),h1); // Передаем данные vw_send((uint8_t *)dataString, 12); //Ждем окончания отправки vw_wait_tx(); lcd.setCursor(0,1); lcd.print("tem "); lcd.print(t); lcd.setCursor(8,1); lcd.print("vla "); lcd.print(h); delay(500); }большое спасибо все получилось работает, сложу все в корпус выложу фотки