Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2012, 19:09   #1
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1601
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию Вопросы и ответы по Ардуино (FAQ)

Открыл новую тему в которой предлагаю обсуждать вопросы по программированию Arduino, какие-то технические аспекты.
Конечно есть официальный сайт arduino.cc и русскоязычный arduino.ru и множество других, но пускай это будет и на нашем форуме.
Ведь здесь собираются люди которые хотят приобщится к миру автоматики, хотят чем-то поуправлять - поуправлять своим домом. Ардуино как раз тот кирпичик, на котором строится "умный дом".

Я не так давно купил это маленькое "чудо" поэтому опыта работы с ним немного. Хочу задать вопрос такого плана:

послал команду на цифровой выход
Код:
digitalWrite(13, HIGH);
или
digitalWrite(13, LOW);
а как мне считать текущее состояние этого выхода.
т.е. я хочу знать в каком состоянии находится тот или иной выход
конечно можно какой-то переменной присваивать тоже значение, а потом читать ее и делать выводы. Но как то это не правильно.

Код:
digitalWrite(ledPin, HIGH);
int pin13 = 1;
andr128 вне форума   Ответить с цитированием
Старый 18.10.2012, 19:44   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,610
Вес репутации: 9811
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Единственный способ это, вместо LOW и High изменять значение переменной Lamp_Stat
Или еще можно просто инвертировать эту переменную ~Lamp_Stat
Вот так будет выглядеть код блинка
Код:
boolean Lamp_Stat;
void setup() 
{                
  pinMode(13, OUTPUT);     
}

void loop() 
{
  Lamp_Stat=~Lamp_Stat;
  digitalWrite(13, Lamp_Stat);  
  delay(1000);
}
Admin вне форума   Ответить с цитированием
Старый 19.10.2012, 02:41   #3
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1601
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Спасибо.
Из вашего примера я понял получится мигалка , но смысл я понял.
Моя идея банальна, я хочу зайти на страницу роутера и увидеть состояние выход(а)ов ардуины, чтобы принять решение включить или выключить светодиод (реле).
andr128 вне форума   Ответить с цитированием
Старый 22.01.2013, 01:04   #4
aszxx
Junior Member
 
Регистрация: 29.11.2012
Сообщений: 28
Вес репутации: 0
aszxx is a splendid one to beholdaszxx is a splendid one to beholdaszxx is a splendid one to beholdaszxx is a splendid one to beholdaszxx is a splendid one to beholdaszxx is a splendid one to beholdaszxx is a splendid one to behold
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
Единственный способ это, вместо LOW и High изменять значение переменной Lamp_Stat
[/CODE]
Не совсем кстати верно - можно напрямую считать данные с регистра состояния AVR ки, как-то так
PORTD – The Port D Data Register (регистр данных порта D)
Для статики (вкл/выкл) подойдет, если PWM режим - нет, считывает ТЕКУЩЕЕ состояние, а PWM ногой дергает....
aszxx вне форума   Ответить с цитированием
Старый 25.01.2013, 03:57   #5
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1601
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию Аппаратное прерывание от serial port

Столкнулся с такой проблемой.
Измеряю температуру с помощью DS18B20 и по запросу передаю данные в serial порт. Проблема в том, что если в момент запроса от мастера идет чтение температуры происходит ошибка в виде тайм-аута.
В библиотеке опроса датчика температуры есть такой "нехороший" код, как ожидание в ~750ms.

Вижу выход в виде обработки аппаратного прерывания т.е. при входящем символе ардуина бросала все дела и обрабатывала запрос.

В общем не знаю как это победить, прошу помощи.
andr128 вне форума   Ответить с цитированием
Старый 25.01.2013, 08:21   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,610
Вес репутации: 9811
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Можно применить многозадачность
И здесь можно прочитать про прерывание UART
Admin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 05:12. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика