| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Проблем с програмиране на Ардуино уно http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=13619 |
Страница 1 от 2 |
| Автор: | tosho [ Сря Мар 04, 2015 4:54 pm ] |
| Заглавие: | Проблем с програмиране на Ардуино уно |
Здравейте, приятели Разполагам със сензори за напрежение https://encrypted-tbn3.gstatic.com/imag ... dfSslWJLmA и relay shield. http://www.microbot.it/open2b/var/catal ... 20-800.jpg Трябва ми програма, която при достигане на определено напрежение от сензора за напрежение да превключва релета. Примерно при заряд на акумулатор,когато напрежението достигне 12V ,реле едно да се изключи и да се включи реле 2. И когато напрежението падне под 12V реле 2 да изключи ,а реле 1 да се включи. Ще бъда много благодарен, ако някой ми помогне |
|
| Автор: | ike [ Сря Мар 04, 2015 5:02 pm ] |
| Заглавие: | Re: Проблем с програмиране на Ардуино уно |
Това не е сензор, това са 2 резистора. Колко плащаш за тази програма? |
|
| Автор: | s7ama7 [ Сря Мар 04, 2015 7:10 pm ] |
| Заглавие: | Re: Проблем с програмиране на Ардуино уно |
И за това ти трябва микроконтролер ? |
|
| Автор: | s7ama7 [ Чет Мар 05, 2015 12:19 pm ] |
| Заглавие: | Re: Проблем с програмиране на Ардуино уно |
Тук нужда от микроконтролер аз не виждам . Това което искаш да направиш може да се направи с няколко елемента и ще струва 5 пъти поне по-евтино и по-малко . Но да не съм офтопик Трябва да си сметнеш делителя при 12V , след което ползваш тази функция http://arduino.cc/en/Reference/analogRead за да четеш AЦП-то . Всичко е много добре обяснено , само трябва да го прочетеш и ако имаш елементарни познания по програмиране не би трябвало да имаш проблем . Тук имаш и функцията за цифровите входове/изходи http://arduino.cc/en/Reference/digitalWrite . Остава да направиш условието . |
|
| Автор: | tosho [ Чет Мар 05, 2015 1:16 pm ] | |||||||||
| Заглавие: | Re: Проблем с програмиране на Ардуино уно | |||||||||
Делителя не е ли сметнат ? Това за функциите го бях гледал преди , разбирам почти всеки ред за какво е ,но не мога да ги свържа в една обща ,работеща програма . Точно условието ми е проблема . Съгласен съм , че не е необходим контролер и може да стане по-лесно и по-евтино , но имам ардуното и искам него да използвам . Ако можеш да ми помогнеш с програмата ще ти бъда много благодарен . |
||||||||||
| Автор: | s7ama7 [ Чет Мар 05, 2015 3:40 pm ] | |||||||||
| Заглавие: | Re: Проблем с програмиране на Ардуино уно | |||||||||
Какъв акумулатор мислиш да зареждаш ? Това нещо си мисля че трябва да има някакъв хистерезис Делителя може да си го изчислиш с помощта на този сайт http://www.electronics2000.co.uk/calc/potential-divider-calculator.php , за да знаеш при 12v какво напрежение ще се получи от извода на делителя . А като знаеш това напрежение , може да изчислиш при каква стойност на регистъра на АЦП ще имаш примерно 3 V .
|
||||||||||
| Автор: | tosho [ Чет Мар 05, 2015 4:04 pm ] |
| Заглавие: | Re: Проблем с програмиране на Ардуино уно |
Мисля да е този : http://autocom.bg/%D0%BF%D1%80%D0%BE%D0 ... ycle-60-ah void loop() { val = analogRead(analogPin); if (val >= ?? ) { Защо са тези въпросителни ? Как микроконтролера ще разбира какво е напрежението ? Не трябва ли някъде да е указно ,че трябва да брой от 0-1023 в зависимост от напрежението -0-5V нa A0? Извинявам се ако въпросите ми са глупави , сега навлизам в материята. |
|
| Автор: | s7ama7 [ Чет Мар 05, 2015 4:16 pm ] |
| Заглавие: | Re: Проблем с програмиране на Ардуино уно |
Оставил съм ги въпросителни защото трябва да се изчисли , дори съм писал по-горе как става ! |
|
| Автор: | M_I_T_A_K_A [ Пет Мар 06, 2015 12:34 am ] | |||||||||
| Заглавие: | Re: Проблем с програмиране на Ардуино уно | |||||||||
Без да имам претенции, че разбирам от програмиране малко помощ и от мен. На мястото на ?? може да се пише напрежението, което е необходимо да се следи. А стойностите на R1 и R2 ги заместваш с тези на "сензора" 5.0 е стойноста на референтното напрежение, в случая захранващото.
|
||||||||||
| Автор: | ike [ Пет Мар 06, 2015 1:46 pm ] | |||||||||
| Заглавие: | Re: Проблем с програмиране на Ардуино уно | |||||||||
Как от далеч си личат програмистите за PC.
M_I_T_A_K_A а така няма ли да прави същата работа, като остане 1к повече свободен флаш? |
||||||||||
| Автор: | M_I_T_A_K_A [ Съб Мар 07, 2015 12:24 am ] |
| Заглавие: | Re: Проблем с програмиране на Ардуино уно |
Критиката ти, за мен е градивна вземам си бележка А примера го дадох, защото реших, че е по лесно резултата да е във волтове. |
|
| Автор: | tosho [ Пон Мар 09, 2015 4:25 pm ] |
| Заглавие: | Re: Проблем с програмиране на Ардуино уно |
Благодаря ви за отговорите. В сряда ще го пробвам дали работи и на практика |
|
| Автор: | ike [ Пон Мар 09, 2015 6:27 pm ] |
| Заглавие: | Re: Проблем с програмиране на Ардуино уно |
Няма да работи, защото както s7ama7 каза - това устройство няма хистерезис и ще ти прецака релетата. |
|
| Автор: | tosho [ Пет Мар 13, 2015 5:14 pm ] |
| Заглавие: | Re: Проблем с програмиране на Ардуино уно |
В крайна сметка , докато правих опити схемата тръгна (подавах различно напрежение на делителя и релетета си превключваха в границите ,както трябва) Изникна проблем , когато направих цялата постановка .Вместо фотоволтаичен панел сложих зарядно за акумулатор , само че като закача зарядното за акумулатора напрежението се променя на около 16 волта ,а когато го изключа и вкюча товар пада на 10 и всичко се проваля. Тези граници които съм задал предварително : от 11волта да превключва едното реле , а от 12 волта другото , стават безсмислени. Това е програмата, която ползвах: int analogPin = 3; int RelayPin1 = 5; int RelayPin2 = 6; float val = 0; float R1 = 7500.0; float R2 = 30000.0; void setup() { pinMode(analogPin, INPUT); pinMode(RelayPin1, OUTPUT); pinMode(RelayPin2, OUTPUT); digitalWrite(RelayPin1, LOW); digitalWrite(RelayPin2, LOW); } void loop() { val = analogRead(analogPin)*5.0/1024.0; val = val/(R2/(R1+R2)); if (val >= 3 ) { digitalWrite(RelayPin1, LOW); delay(1000); digitalWrite(RelayPin2, HIGH); delay(1000); } else { digitalWrite(RelayPin1, HIGH); digitalWrite(RelayPin2, LOW); } } |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|