помогите обьеденить два скечта в одну ардуино

василий55
Offline
Зарегистрирован: 25.11.2021

часы работает 

==============================================

http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

 

 

приемник работает

====================================

http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii





две ардуино два екрана, хочу залить все в одну ардуино, два екрана чтобы работали помогите пож
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

василий55 пишет:
хочу залить все в одну ардуино

https://www.youtube.com/watch?v=q1d3cpOg8oQ

Хотите - заливайте, что не получается-то?

василий55
Offline
Зарегистрирован: 25.11.2021

ошибка, я так понял что нужно както дать определить ардуинке на какой екран что выводить а как ето правильно написать не знаю

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

василий55 пишет:

 как ето правильно написать не знаю

Придёца освоить Дао программиста. 

b707
Offline
Зарегистрирован: 26.05.2017

василий55 пишет:

ошибка, я так понял что нужно както дать определить ардуинке на какой екран что выводить а как ето правильно написать не знаю

судя по постановке вопроса - опыта в программировании чуть более чем ноль? - придется сначала выучить Си/С++ , а потом сможешь и свою задачку решить

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

судя по постановке вопроса - опыта в программировании чуть более чем ноль?

С чего сделан такой вывод? По моему - чуть меньше, чем ноль.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

василий55 пишет:

ошибка, я так понял что нужно както дать определить ардуинке на какой екран что выводить а как ето правильно написать не знаю

Какая, нахрен, ошибка? Где код? Где текст сообщения об ошибке? О чём вообще речь?

Знаете, Вы же делаете часы с приёмником? И по отдельности они работают, так?

Ну и НАХЕРА козе баян? Пихайте в корпус часов две ардуины и пусть они себе работаю независимо. Отличное решение! Другого Вы, не умея программировать от слова совсем, всё равно не потянете.

василий55
Offline
Зарегистрирован: 25.11.2021

блин обосрать все умные а помочь я так понимаю никто не хочет

василий55
Offline
Зарегистрирован: 25.11.2021

хочу в одну ардуинку запихнуть все , спасибо за помощ

b707
Offline
Зарегистрирован: 26.05.2017

василий55 пишет:

блин обосрать все умные а помочь я так понимаю никто не хочет

Помогают тогда, когда человек что-то сам делает. Вы что-то делаете? - показывайте тогда

А если ждете, что кто-то вам готовый код выложит - на это не надейтесь

василий55 пишет:

хочу в одну ардуинку запихнуть все , спасибо за помощ

хочите - запихивайте, мы не против

Komandir
Offline
Зарегистрирован: 18.08.2018

василий55 впихнем невпихуемое, но деньги вперед !

Green
Онлайн
Зарегистрирован: 01.10.2015

Феликс Шиндер и деньги вперёд.)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

василий55 пишет:

блин обосрать все умные а помочь я так понимаю никто не хочет

Я Вас не обсирал, а дал Вам действительно дельный совет - делайте на двух ардуинах. Это то, как Вы реально можете сделать устройство.

А то, что Вы "хотите" ... у Вас для таких хотелок знаний недостаточно.

Morroc
Offline
Зарегистрирован: 24.10.2016

василий55 пишет:

хочу в одну ардуинку запихнуть все , спасибо за помощ

т.е. вы думаете, что достаточно скопировать это все в одну кучу и еще за пару минут что то быстренько докрутить ? ну так вы неправильно думаете, а думаете неправильно потому что представления не имеете о предмете, частенько подобное быстрее сделать заново с нуля, чем скрещивать ежа с ужом

василий55
Offline
Зарегистрирован: 25.11.2021

решил по другому сделать на одну ардуино с екраном 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]);
    }
    }
    }
    }

заранее благодарен за ответ

b707
Offline
Зарегистрирован: 26.05.2017

василий55 пишет:

первую строку пишет     Temperat /     что не так???

у вас там описана VirtualWire - а с чем оно связывается? Вы хоть проверяйте. в буфере-то что-то появляется при приеме? Может там и нет ничего - потому и не печатает.

 

василий55
Offline
Зарегистрирован: 25.11.2021
// Пин светодиода
09
const int led_pin = 13;
10
//Пин приемника
11
const int receive_pin = 11;

 

связь работает светодиод 13 загорается и на екране пишет "Temperat / "

когда связи с передатчиком нету строка пуста и светодиод не загорается

на оригинальном скетче писало "Temperat  15,00" (например без символа /) а тут пишет симвл / без данных температуры

VirtualWire является библиотекой Arduino. Предназначена для отправки и приема коротких сообщений по широковещательной беспроводной связи, .я так понял она нужна?