Использую DHT11 с UNO с библиотекой <idDHT11.h> из примера библиотеки (ниже) датчик подключается с уно по 2 или 3 входу /* Board int.0 int.1 int.2 int.3 int.4 int.5 Uno, Ethernet 2 3 Mega2560 2 3 21 20 19 18 Leonardo 3 2 0 1 Due (any pin, more info http://arduino.cc/en/Reference/AttachInterrupt) */ на других не хочет работать. А у меня еще есть GPRS shield ( вот такой http://www.tinyosshop.com/image/cache/data/ARDUINO/Shield/GSMSHIELD-4-600x600.jpg) который тоже вешается на 2,3 ногу (SoftwareSerial gprsSerial(2, 3);. Как быть? Купить мегу?
1) Попробуйте другую библиотеку: https://github.com/amperka/dht 2) Мегу все равно купите, "толстенький" контроллер еще пригодится.
С другой библиотекой все решил - повесил DHT11 на аналоговые входы. Но теперь другая проблема. Мой GPRS shield работает в программном режиме на порту 2,3. Но в то же время программно включается когда инициализирован на 7,8 порту. Что за фигня? Включаю так: void standUpGprs() //Включаем GPRS { gprsSerial.begin(19200); gprsSerial.print("AT\r"); // Если шилд включен, ничего не делаем, а то выключим delay(1000); if (!gprsSerial.available()) { pinMode(9, OUTPUT); digitalWrite(9,LOW); delay(1000); digitalWrite(9,HIGH); delay(2000); digitalWrite(9,LOW); delay(15000); } } Т.е. если я в начале напишу SoftwareSerial gprsSerial(7, 8); - то он будет автоматически включаться, но больше ни на что не реагировать. А если напишу SoftwareSerial gprsSerial(2, 3); - то не будет автоматически включаться, но зато будет работать как надо (у меня принимать отправлять смс) ?
Причем при SoftwareSerial gprsSerial(2, 3) если GPRS shield включить вручную, а затем перезагрузить ARDUINO, то при запуске процедуры включения standUpGprs() он сначала выключает shield затем включает его. И соответственно если шилд выключен, то ничего не происходит.
правильно так и должно быть т.к. контакты весят в воздухе соответственно ответа нет!и функция gprsSerial.available() вернет 0! включите монитор порта и посмотрите что отвечает шилд!
а как (и что) посмотреть если он выключен и не включается автоматически? и все равно не понятно почему на 2,3 он не включается но работает, а на 7,8 только включается...
разобрался - питание моего шилда управляется по 8 пину, а не по 9-му. и все работает с SoftwareSerial gprsSerial(2, 3)