Посетитель
|
Простенький акваконтроллер на ARDUINO (страница 5) |
Всем привет вот за пару дней наваял контроллер. |
|
#1443198 |
Свой на Aqa.ru
|
|
wattnik Оч страно, это такая проблема самой матери Дуино, если стоит команда делей, то она распространяется на всю деятельность ОЗУ или проца? |
|
#1665261 |
|
Посетитель
|
|
wattnik Аналоговые выводы, не такие как цифровые, и не требуют предварительной декларации их как INPUT или OUTPUT обращение к цифровым пинам digitalRead (pin) digitalWrite (pin, value) Обращения к аналоговым пинам analogRead (pin) analogWtite (pin, value) В твоем случае, думаю, просто analogpin = A1 или просто 1 analogWrite(analogpin, value) Изменено 30.8.12 автор Paradox860 Изменено 30.8.12 автор Paradox860 Изменено 30.8.12 автор Paradox860 |
|
#1665279 |
Посетитель
|
|
AquaCross Думаю проблема в том, что на микроконтроллере нет многозадачности, отдельных фоновых потоков как на компьютере. Вся программа один большой бесконечный цикл, и естественно если в нем гдето поставить задержку - тормозит и весь цикл. |
|
#1665284 |
Свой на Aqa.ru
|
|
Paradox860Ну дак тогда вообще проблем нет, если разделить жизнь аквы в 24 часа, и делать все команды по определенному и отдаленному друг от друга времени без пересечения, то вообще не страшно, пусть он хоть на 1 час повиснет, если в этот час нет команд, главное чтоб к наступлению нужного времени он уже был в "стендбай", Вы поняли к чему я? Пусть так: 00:00 ---- выкл О2 ждем вкл СО2 ждем --- вкл свет1 ждем --- добавляем УДО ждем(висим) ждем(висим) --- 12:00 --- выкл СО2 ждем вкл О2 ждем выкл свет ждем --- 23:59 |
|
#1665290 |
Посетитель
|
|
AquaCross Измерение температуры и включение/выключение обогрева или охлаждения требует постоянно работающего кода. Плюс если делать плавные закаты и рассветы. Это мое мнение. Paradox860 Если я буду использовать к примеру 1 цифровой канал как ШИМ-канал: int ledpin=1; int ledlevel = 255; pinmode(ledpin, OUTPUT); analogWrite(ledpin, ledlevel); то каким образом analogRead(1) будет считывать показания с аналоговой ноги, а цифровую не тронет? Изменено 30.8.12 автор wattnik |
|
#1665304 |
|
Посетитель
|
|
AquaCross А как ты поймеш есть команды в это время или нет? У меня допустим он каждый цикл проверяет сотояние кнопок, датчика температуры, датчика ПШ, считывает и выводит время и кучу других показаний на дисплей. Помимо этого в этот промежуток может быть запрограммированно отключение одной из ламп(эффект облаков), из за повышения температуры включение вентилятора, изи за повышения ПШ отключение СО2 и т.д. Конечно можно принебреч 10-20 сек зависона, но это как то не комильфо ИМХО. |
|
#1665305 |
Посетитель
|
|
wattnik Ну вроде да. Чтоб считать с цифровой нужно написать digitalRead(); |
|
#1665307 |
Посетитель
|
|
Народ ну помогите! Дибильнейшая ситуация, я немогу на часах изменить год???ВТФ? Ктонить сделал? |
|
#1665312 |
|
Свой на Aqa.ru
|
|
Ну тогда действительно выход один, 2ю мать ставить со слабыми "мозгами", мне это напоминает книгу Гарри Гаррисона про искуственный интеллект - он тоже это так же решил, процессор, который следит за другим, чтоб тот в цикл не уходил ))) |
|
#1665316 |
Посетитель
|
|
Paradox860 а какая проблема у тебя с годом? |
|
#1665317 |
Посетитель
|
|
wattnik Часы на DS1307, попробуй поменять год используя кнопочки под дисплеемю. У меня из меню меняется все - часы, минуты, месяцы, дни недели, дата. А вот год нихрена, главное код такой же ведь... |
|
#1665340 |
|
Посетитель
|
|
Paradox860 У меня нормально часы устанавливаются. P.S. А вы уверены что код такой же как у меня? Изменено 31.8.12 автор wattnik |
|
#1665500 |
Посетитель
|
|
wattnik RTC.set(DS1307_YR, rtc[6]); |
|
#1665565 |
Посетитель
|
|
wattnik RTC.set(DS1307_YR, rtc[6]); |
|
#1665566 |
|
Посетитель
|
|
Paradox860 RTC.fillByYMD(myTime[2], myTime[1], myTime[0]); RTC.fillByHMS(myTime[3], myTime[4],0); |
|
#1665581 |
Посетитель
|
|
wattnik Arduino 1.0? У тебя новая библиотека под DS1307, другие команды совсем. |
|
#1665595 |
Посетитель
|
|
Paradox860 arduino 1.0.1 библиотека ds1307_new. Вопрос: Можно поподробнее про PH-датчик? Изменено 31.8.12 автор wattnik |
|
#1665601 |
|
Посетитель
|
|
wattnik Примерный код #define NUMREADINGS 10 int readings[NUMREADINGS]; // the readings from the analog input int index = 0; // the index of the current reading int total = 0; // the running total int average = 0; // the average void setup(void) { for (int i = 0; i readings[i] = 0; } void loop(void){ int ph_read, ph_val; // To calibrate ph probe set 7ph to 2V and 10PH to 1V total -= readings[index]; // subtract the last reading readings[index] = analogRead(ph_probe); // read from the sensor total += readings[index]; // add the reading to the total index = (index + 1); // advance to the next index if (index >= NUMREADINGS) // if we're at the end of the array... index = 0; // ...wrap around to the beginning average = total / NUMREADINGS; // calculate the average ph_val = (-1.47 * average + 1300); //ph is stored 100 times value Whole = (ph_val / 100); // separate off the whole and fractional portions Fract = (ph_val % 100); lcd.position(3,12); lcd.println("PH "); if (Whole lcd.println(" "); } lcd.println(itoa(Whole, buf, 10)); lcd.println("."); if (Fract lcd.println("0"); } lcd.println(itoa(Fract, buf, 10)); } Изменено 31.8.12 автор Paradox860 |
|
#1665640 Нравится wattnik
|
Посетитель
|
|
Paradox860 За код конечно спасибо, но хотелось бы поподробнее о самом датчике и физической стыковке его с ардуиной. |
|
#1665664 |
Посетитель
|
|
#1665699 |
|
Посетитель
|
|
Фууу задолбаться переправлять код под новую ИДЕ, вот нафига они пиреписали половину библиотек по другому? Да и год теперь пашет)))УРА! |
|
#1665719 |
Посетитель
|
|
Paradox860 Поздравляю. По поводу датчика PH - можно его фото и маркировку? И вопрос (наверно дурацкий): есть ли датчик на нитраты/нитриты? |
|
#1665729 |
Посетитель
|
|
#1665867 |
|
Посетитель
|
|
Народ кто какой БП использует? |
|
#1668023 |
Новичок
8
12 года |
|
Ну вот заказал arduino, датчик на температуру далас, монтажную плату, жк 2 строчный с кнопками, тока забыл таймер заказать придется самому собрать. |
|
#1668046 |