Две Arduino и RS485

Mezentsev
Offline
Зарегистрирован: 21.02.2014

Доброго дня всем.

Столкнулся с такой проблемой. Делаю проект для зачета. Есть Arduino Mega и Uno. На меге работает сервер с htm страничкой (Ethernet shield). К Uno подцеплен датчик DHT-11.(скетчи будут ниже) Пытаюсь связать обе платы ардуино по интерфейсу RS 485. Сделал вот по такой схеме.

В схеме две Uno, вместо первой- Mega. Конкретная задача считать данные с датчика и по запросу от меги отправить с уно на мегу.

Вот скетч для Uno и DHT-11 (рабочий)

#include <dht.h>



int ledPin = 13;
// Создаем сенсор
DHT sensor = DHT();
 
void setup()
{

    Serial.begin(9600);
 
    // Подключаем сенсор к 0 аналоговому порту
    sensor.attach(A0);

    // Ждем готовность сенсора
    delay(1000);
}
 
void loop()
{
    // Проводим измерения
    sensor.update();
 
    switch (sensor.getLastError())
    {
        case DHT_ERROR_OK:
            char msg[128];
            // Если ошибок нет, то собираем данные
            sprintf(msg, "Vlaznost = %d%% Temp = %dC", 
                    sensor.getHumidityInt(), sensor.getTemperatureInt());
            Serial.println(msg);
            break;
        case DHT_ERROR_START_FAILED_1:
            Serial.println("Error: start failed (stage 1)");
            break;
        case DHT_ERROR_START_FAILED_2:
            Serial.println("Error: start failed (stage 2)");
            break;
    }
 
    delay(1000);
}

Помогите, кто чем может, заранее благодарен)))

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

У  max485 есть ещё пара ног, они соединены на вашей картинке.

Когда на них "0" - данные идут из линии в процессор  и наоборот когда там "1".

Всегда держим "0"- сидим на приёме, а когда хотим что-то передать- на время паредачи поднимаем в "1".