tag:blogger.com,1999:blog-8944086625767573647.post4635007051028835246..comments2023-11-01T18:05:54.861+03:00Comments on Arduino, MK-90 и другие: Как измерить Vcc?idhttp://www.blogger.com/profile/11932466603117832284noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-8944086625767573647.post-91486994458400201832016-06-01T17:18:39.851+03:002016-06-01T17:18:39.851+03:00Смотря чего хочется от дисплея: можно загрубить (о...Смотря чего хочется от дисплея: можно загрубить (отбросить младшую цифру), можно реже считывать и выводить значения, а можно вообще усреднять последние N значений - т.е. выводить только это среднее значение.idhttps://www.blogger.com/profile/11932466603117832284noreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-41558031465890892122016-06-01T06:51:20.232+03:002016-06-01T06:51:20.232+03:00здравсвуйте, вольтметр показывает каждый раз при и...здравсвуйте, вольтметр показывает каждый раз при измерении значение 12.1<br />12.2<br />12.1<br />12.3<br />12.5<br />и т.д. т.е. быстро меныется как можно програмно осуществить плавную смену показаний на дисплее?Anonymoushttps://www.blogger.com/profile/15912519420722976360noreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-57785718935057458052016-01-29T11:56:31.268+03:002016-01-29T11:56:31.268+03:00Дело в том, что автор вместо использования analogR...Дело в том, что автор вместо использования analogReference(INTERNAL) правит библиотеку-ядро ардуино, перенаправляя дефолтное референсное напряжение на источник 1,1В. Честно говоря, не совсем понимаю, почему нельзя использовать именно analogReference(INTERNAL)Anonymoushttps://www.blogger.com/profile/16948566112415838582noreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-38283542956099094762013-09-05T17:44:25.161+04:002013-09-05T17:44:25.161+04:00Доброго времени суток!
Есть необходимость монитори...Доброго времени суток!<br />Есть необходимость мониторить ардуинку запитаную от 3-х элементов АА(4,5 В) по питанию и при падении напряжения до 3-х и меньше Вольт подавать сигнал(пищалку включать или мигать светиком). Наткнулся на Вашу статейку, с ходу получаю такие результаты: <br />3.79 v_bat<br />3.78 v_bat<br />3.74 v_bat<br />3.73 v_bat<br />3.73 v_bat<br />3.73 v_bat<br />3.73 v_bat<br />3.74 v_bat<br />3.77 v_bat<br />3.79 v_bat<br />3.79 v_bat<br />3.77 v_bat<br />3.74 v_bat<br />3.73 v_bat<br />Питание в данный момент от USB. Мультиметр показывает 5.02 В на ножках питания ATMega328P-PU.<br />Еще непонятен вопрос относительно замера:<br />V_BAT=(1.1*1024)/analogRead(14);<br />и<br />analogReference(DEFAULT);<br />raw_bandgap = analogRead(14);<br />analogReference(DEFAULT) - говорит использовать питание Vcc как опорное http://arduino.ru/Reference/AnalogReference.<br />Далее , поправьте если не прав, снимаем показания с 14 канала который подключен к Vcc внутри самого контроллера?<br />Каким образом тогда тут притянуто 1.1 В ?<br />Прошу знатоков помочь в вопросе!<br />Заранее благодарен.Eugeniy Khvastunovhttps://www.blogger.com/profile/07213465961774969247noreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-1240008252846133252012-09-10T07:58:47.146+04:002012-09-10T07:58:47.146+04:00Здравствуйте, все сделал как в примере, но значени...Здравствуйте, все сделал как в примере, но значения выводятся какие попало. Использую Iteaduino V1.1 (ATmega 328). Если плата работает в режиме 5V то показывает 2,8-3,2V, а если переключаю в режим 3,3V, то вообще котовасия: от 8V до 15V, питается от USB. Подскажите, пожалуйста в чем может быть причина?Anonymoushttps://www.blogger.com/profile/11640918668462886230noreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-38168764919351864002012-07-11T10:21:14.232+04:002012-07-11T10:21:14.232+04:00Наличие встроенного bandgap reference, сколько на ...Наличие встроенного bandgap reference, сколько на нем падает и на каком канале АЦП он висит - зависит от конкретной модели МК.<br /><br />У Вас какая ATmega?idhttps://www.blogger.com/profile/11932466603117832284noreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-77838894748980450932012-07-11T00:36:14.120+04:002012-07-11T00:36:14.120+04:00Ребят, у меня по рандому выдает результат:
1.10 v...Ребят, у меня по рандому выдает результат:<br /><br />1.10 v_bat<br />1.10 v_bat<br />1.71 v_bat<br />4.64 v_bat<br />375.47 v_bat<br />0.00 v_bat<br />0.00 v_bat<br />16.81 v_bat<br />2.07 v_bat<br /><br />Все сделал как написано, в чем дело? Не надо разве цеплять вход с Vcc?vkolotovhttps://www.blogger.com/profile/08632190481989653900noreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-67152041936858223482009-06-27T22:18:43.499+04:002009-06-27T22:18:43.499+04:00Позволю себе несколько замечаний... возможно они о...Позволю себе несколько замечаний... возможно они окажутся полезными.<br /><br />1. analogRead() возвращает целое значение, следовательно хранить его можно в uint16_t (word).<br /><br />2. для хранения однотипных данных можно использовать массив, например word measurents[22];<br /><br />3. для обработки массивов можно использовать цикл, например так:<br /><br />for (int i=0;i<22;i++) {<br /> measurements[i] = analogRead(0);<br />}<br /><br />4. Для вычисления среднего вообще не обязательно запоминать все измерения - этот способ я описал в моем предыдущем комментарии. Для 10-20 значений это несущественно, но когда их 100-200... можно получить проблемы с памятью, особенно в атмеге.idhttps://www.blogger.com/profile/11932466603117832284noreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-54070267308987916032009-06-27T09:48:02.454+04:002009-06-27T09:48:02.454+04:00благодарю!буду разбираться:)
на тот случай если кт...благодарю!буду разбираться:)<br />на тот случай если кто сюда забредет,я выше какой то кривой скетч выложил,вот рабочий:<br /><br />float fgh2 = 0;<br />float fgh = 0;<br />float a=0;<br />float b=0;<br />float c=0;<br />float d=0;<br />float e=0;<br />float f=0;<br />float g=0;<br />float h=0;<br />float i=0;<br />float k=0;<br /><br />float cnst = 271;<br /><br />void setup()<br />{<br /> pinMode(13, OUTPUT);<br /> Serial.begin(9600); <br />}<br />void loop()<br />{ <br /> a= analogRead(0);<br /> delay(10);<br /> b= analogRead(0);<br /> delay(10);<br /> c= analogRead(0);<br /> delay(10);<br /> d= analogRead(0);<br /> delay(10);<br /> e= analogRead(0);<br /> delay(10);<br /> f= analogRead(0);<br /> delay(10);<br /> g= analogRead(0);<br /> delay(10);<br /> h= analogRead(0);<br /> delay(10);<br /> i= analogRead(0);<br /> delay(10);<br /> k= analogRead(0);<br /> delay(10);<br /><br /> fgh2=(a+b+c+d+e+f+g+h+i+k)/10;<br /><br /> fgh =fgh2*0.48828125-cnst;<br /><br /> Serial.println(fgh,DEC);<br /><br /> if (fgh <28){ <br /><br /> digitalWrite(13, 1); <br /><br /> delay(1000);Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-46617853247539386272009-06-25T22:35:14.712+04:002009-06-25T22:35:14.712+04:00Среднее можно здесь считать так:
unsigned int st...Среднее можно здесь считать так: <br /><br />unsigned int step = 1;<br />float average = analogRead(0);<br /><br />for (int i=0;i<22;i++) {<br /> delay(100);<br /> step++;<br /> average = (step-1)/step*average + analogRead(0)/step;<br />}idhttps://www.blogger.com/profile/11932466603117832284noreply@blogger.comtag:blogger.com,1999:blog-8944086625767573647.post-64842308054342853342009-06-25T19:25:24.546+04:002009-06-25T19:25:24.546+04:00добрый день уважаемый!подскажи пожалуйста
как вычи...добрый день уважаемый!подскажи пожалуйста<br />как вычислять среднее значение,мне пришлось вот че нагородить,я правда не уверен что он это считает,но если раз в секунду мерить сильнее разброс,чем так<br />(это термостат на лм335з,работает кстати :)<br />а float-я думал покажет мне температуру с десятыми долями градуса :D<br /><br /><br /><br /><br />float fgh1= 0;<br />float fgh = 0;<br />float a=0;<br />float b=0;<br />float c=0;<br />float d=0;<br />float e=0;<br />float f=0;<br />float g=0;<br />float h=0;<br />float i=0;<br />float k=0;<br />float L=0;<br />float a1=0;<br />float b2=0;<br />float c3=0;<br />float d4=0;<br />float e5=0;<br />float f6=0;<br />float g7=0;<br />float h8=0;<br />float i9=0;<br />float k10=0;<br />float L11=0;<br />float cnst = 271;<br /><br />void setup()<br />{<br /> pinMode(7, OUTPUT); <br /> Serial.begin(9600); <br /> pinMode(8, OUTPUT);<br />}<br />void loop()<br />{ <br /> digitalWrite(8, HIGH); <br /> a= analogRead(0);<br /> delay(100);<br /> b= analogRead(0);<br /> delay(100);<br /> c= analogRead(0);<br /> delay(100);<br /> d= analogRead(0);<br /> delay(100);<br /> e= analogRead(0);<br /> delay(100);<br /> f= analogRead(0);<br /> delay(100);<br /> g= analogRead(0);<br /> delay(100);<br /> h= analogRead(0);<br /> delay(100);<br /> i= analogRead(0);<br /> delay(100);<br /> k= analogRead(0);<br /> delay(100);<br /> L= analogRead(0);<br /> delay(100);<br /> a1= analogRead(0);<br /> delay(100);<br /> b2= analogRead(0);<br /> delay(100);<br /> c3= analogRead(0);<br /> delay(100);<br /> d4= analogRead(0);<br /> delay(100);<br /> e5= analogRead(0);<br /> delay(100);<br /> f6= analogRead(0);<br /> delay(100);<br /> g7= analogRead(0);<br /> delay(100);<br /> h8= analogRead(0);<br /> delay(100);<br /> i9= analogRead(0);<br /> delay(100);<br /> k10= analogRead(0);<br /> delay(100);<br /> L11= analogRead(0);<br /> delay(100);<br /> fgh=(a+b+c+d+e+g+h+i+k+f+L+a1+b2+c3+d4+e5+g7+h8+i9+k10+f6+L11)/22*0.48828125;<br /> if (fgh<=20+cnst){ <br /> digitalWrite(7, 0); <br /> delay(10000);<br /> }<br /> if (fgh>21+cnst){ <br /> digitalWrite(7, 1); <br /> }<br /> Serial.println(fgh-cnst,DEC);<br />}Anonymousnoreply@blogger.com