Ви не увійшли.
Сторінки 1
Дійсно.... як елегантно і просто...Велике ДЯКУЮ !
Працює все так,як треба ,і зовсім не обов'язково городити цілу купу тих вкладених міллісів...
Вчитися! Скільки мені ще треба вчитися! Але добре, що є на форумі добрі люди
Дякую.
Дякую за допомогу! Спробував. Не помогло.... Тільки священний delay() працює так, як треба... Якщо розкоментовую делей - вологість така,як треба. 40
Без делей якогось милого 174 -175, навіть не зважаючи на sensor = map(sensor, MIN, MAX, 0, 100). І не працюєякраз отой другий, вкладений мілліс()...
Може це такий баг Ардуіно IDE ??
Привіт усім. Не можу зрозуміти, чому не працює вкладена функція millis(), тобто одна функція millis() є вкладена в іншу millis().
Проблема така - є датчик вологи, підключений до аналогового входу. Дані з датчика читаються, наприклад, 1 раз в 10 хв., живлення на датчик подається в момент читання даних, але там повинна бути затримка мінімум 50-60 мс, для чого і служить друга функція millis(). По одинці ці дві функції працюють нормально, дві - ніяк. Питання, можливо, трохи дурне, за що прошу не дуже сварити )))
deay(60) допомагає одразу, але хотілося б обійтись без неї...
#define SENSOR A1 ..
#define Vcc A2
#define MIN 747 // мінімальні показники вологості
#define MAX 330 // максимальні ----/ -----------
uint16_t sensor;
unsigned long stat_time;
unsigned long previousMillis = 0;
unsigned long previousMillis2 = 0;
void setup(){
Serial.begin(57600);
pinMode (Vcc, OUTPUT); // вивід для живлення датчика вологості
digitalWrite(Vcc, LOW );
}
void loop(){
unsigned long currentMillis = millis();
unsigned long currentMillis2 = millis();
if(currentMillis-previousMillis>=5000){ // замість delay 5 хв = 300 000 мс
previousMillis = currentMillis;
digitalWrite(Vcc, HIGH ); // Включаємо датчик
if(currentMillis2-previousMillis2>=60){ // замість delay
previousMillis2 = currentMillis2;
// delay(60);
sensor = analogRead(SENSOR); // Читаємо дані з датчика,
sensor = map(sensor, MIN, MAX, 0, 100); // адаптуємо значення від 0 до 100,
Serial.println(sensor);
digitalWrite(Vcc, LOW ); // Виключаємо датчик
}
}
Якщо розкоментувати делей, то показники - такі, як треба, напр. 45. Без делей - 171.
Вибачте за багато тексту. Прошу допомогти.
На смежном форуме прочитал что вы используете esp-link. Ну так там вроде как есть mqtt. Вот и используйте его.
Так, але я використоую esp-link для прошивки ардуіно і там таки, на суміжному форумі написали, що нема таких прошивок для ESP8266, щоб одночасно була можливість і прошивати ардуіно без кабеля, і отримувати з неї необхідні мені дані.
При використанні mqtt це можливо ?
http://mypractic.ru/urok-1-vvedenie-obshhie-svedeniya-ob-arduino.html
Тому що ардуіно керує двома вкнтиляторами, платою з 4-х реле і задіяно 3 аналогових входи + І2с для індикатора, etc...
Але найголовніше - під це все зроблені друковані плати, вже скомпоноване і працює.
А це просто як додаткова сервісна можливість, ну крім можливості дистанційної прошивки. Хай би було ...
Всім привіт,
маю таке питання - є Ардуіно нано з підключенимим датчиками, вентиляторми і т.д. Підключив ESP8266 для прошивки Ардуїнки без кабеля, все нормально працює., але хотілося б отримувати ще й дані з ардуїнки на смартфон, наприклад. Ардуіно виводить дані про температуру, вологість і ще деякі речі на диспле по шинв ІІС, чи можна якимось чином ці дані продублювати на смартфон по wi-fi ?
Сторінки 1