Ви не увійшли.
Сторінки 1
Подскажите, а то не могу найти. Как отключить программно подсветку?
Нашел, как дисплей но при этом подсветка горит...
Зависает только экран или на терминал тоже ничего не выдает?
Все виснет, и экран и serial ....
Вывод из зависания, просто кнопка ресет или сброс питания ....
Сейчас сделал плавающие надписи что бы экран не светился в одном месте ....
lcd.clear();
curOffice = random(0,5);
curOfficeTemp = (curOffice + 7);
lcd.setCursor(curOffice, 0);
lcd.print("Office");
lcd.setCursor(curOfficeTemp, 0);
lcd.print(ds.getTempC(sensor1));
lcd.setCursor(curOffice, 1);
lcd.print("Water");
lcd.setCursor(curOfficeTemp, 1);
lcd.print(ds.getTempC(sensor2));
У меня подозрение что это связано именно с USB, комп с Mac OS X, может он экономит так электричество ....
всем привет, я только начинаю работать с ардуино, вероятно мои ответы будут вам полезны
LCD - выключить питание, и не забыть все ноги индикатора в ноль выставить, при повторном выводе выполнить переиницицизацию индикатора
зависание
- ошибки в библиотеках USB стека, кто его знает как ведет себя этот драйвер, при такой длительной работе
- переполнение стека ( USB / user lib ) ?питание:
попробовать записать от внешнего источника, контроль только на индикаторе
вывод serial убрать, даже если очень нужен , Вы ищете плавающую ошибку )
Попробую все сделать, надо только питание найти внешнее ....
Привет Всем!
Сразу скажу что я только начинаю эксперименты с ардуино.
Сделал тут конструктор с двумя терма-датчиками, диодом и экраном. На экран выводятся данные по температуре и в зависимости от диапазона горит нужный цвет диода.
КОд ниже.
Вопрос.
1) почему через сутки или чуть больше, меньше виснит
2) Как сделать, что бы экран засыпал, понимаю что постоянно показывать чревато.
Ну конечно самое главное почему виснет. (питание идет от USB)
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
OneWire oneWire(2); // вход датчиков 18b20
DallasTemperature ds(&oneWire);
//28 FF 2D 18 A2 15 03 30
//28 FF 67 5E 02 16 03 2E
DeviceAddress sensor1 = {0x28, 0xFF, 0x2D, 0x18, 0xA2, 0x15, 0x03, 0x30};
DeviceAddress sensor2 = {0x28, 0xFF, 0x67, 0x5E, 0x02, 0x16, 0x03, 0x2E};
// работа с экраном
LiquidCrystal lcd(4, 5, 6, 7, 8, 9);
// работа с диодами
int b = 10;
int g = 12;
int r = 11;
//
void setup() {
Serial.begin(9600);
ds.begin();
// Экран
lcd.begin(16, 2);
// объявляем используемые порты
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
}
void loop() {
ds.requestTemperatures(); // считываем температуру с датчиков
Serial.print("Office : ");
Serial.print(ds.getTempC(sensor1)); // отправляем температуру
Serial.println("C");
Serial.print("Water : ");
Serial.print(ds.getTempC(sensor2));
Serial.println("C");
Serial.println();
// Экран
lcd.setCursor(0, 0);
lcd.print("Office");
lcd.setCursor(9, 0);
lcd.print(ds.getTempC(sensor1));
lcd.setCursor(0, 1);
lcd.print("Water");
lcd.setCursor(9, 1);
lcd.print(ds.getTempC(sensor2));
//
// диоды
if ( ds.getTempC(sensor2) <= 25){
//Serial.print(" blu ");
digitalWrite(r, LOW); //выключаем красный
digitalWrite(g, LOW); //выключаем зеленый
digitalWrite(b, HIGH); //включаем синий
}else if ( ds.getTempC(sensor2) >= 26.50 ){
//Serial.print(" red " );
digitalWrite(r, HIGH); //включаем красный
digitalWrite(g, LOW); //выключаем зеленый
digitalWrite(b, LOW); //выключаем синий
}else{
//Serial.print(" gre " );
digitalWrite(r, LOW); //выключаем красный
digitalWrite(g, HIGH); //включаем зеленый
digitalWrite(b, LOW); //выключаем синий
}
delay(1000);
}
Сторінки 1