Здравствуйте. Собрал простейшую схемку для использования геофона (сейсмодатчика). Геофон подает сигнал на аналоговый пин, и на основе этого сигнала загораются светодиоды. То есть чем сильнее тряска, тем больше светодиодов горит. В спецификациях на геофон (GS-32CT) нету информации об максимально выдаваемом напряжении, а хотелось бы знать не сожгет ли постоянная подача максимального напряжения (то есть мощная интенсивная тряска) плату Arduino. Для определения получаемого напряжения от геофона решил посмотреть какие значения он подает на аналоговый пин, при помощи кода следуещго вида: Код (C++): void setup() { Serial.begin(9600); } void loop() { int v = analogRead(A0); Serial.print(v); Serial.print("\n"); } Значения были от 0 до 1023. Я верно понимаю, что когда значение достигает 1023, то это значит что напряжение равно 5V (при питании от USB)? Если это так, то можно ли без вреда для Arduino подключать внешнее питание 9V при подключенном USB (для использования монитора последовательно порта в среде Arduino)? С целью посмотреть какие при этом будут поступать значения на аналоговый пин.
Но там уже соотношение другое же будет? То есть значение 1023 будет соответствовать 9V? Забыл еще в первом посте вопрос задать: Какое максимальное напряжение можно подавать на пины?
5 В. Подача большего напряжения может привести к необратимым последствиям. Прежде чем подключать что- либо, желательно почитать или померять. Во всех сомнительных случаях диоды (лучше шоттки) защитные на землю и на +5В. В ардуине по умолчанию меряется по отношению к Vcc, в uno можно мерять по отношению к VREF (туда можно подать <5 В) и внутреннего источника (1.1 V в 8и 2.56 V в 324), более подробно см. Arduino Development Cookbook p 75 For more information on the Arduino Due analogReadResolution() function and more analog references, visit the following links: f http://arduino.cc/en/Reference/AnalogReadResolution f http://arduino.cc/en/Reference/AnalogReference
А как-же: Использование напряжения больше 12В может приводить к перегреву стабилизатора напряжения и выходу платы из строя. С учетом этого, рекомендуется использовать источник питания с напряжением в диапазоне от 7 до 12В.
Или вот: Характеристики Микроконтроллер ATmega328 Рабочее напряжение 5В Напряжение питания (рекомендуемое) 7-12В Напряжение питания (предельное) 6-20В Цифровые входы/выходы 14 (из них 6 могут использоваться в качестве ШИМ-выходов) Аналоговые входы 6 Максимальный ток одного вывода 40 мА Максимальный выходной ток вывода 3.3V 50 мА Flash-память 32 КБ (ATmega328) из которых 0.5 КБ используются загрузчиком SRAM 2 КБ (ATmega328) EEPROM 1 КБ (ATmega328) Тактовая частота 16 МГц Может я че не правильно понимаю?
Вам что нужно сделать ? Повысить разрешение? Так в спецификации на геофон написано: "Идеально 24 bit АЦП". В этом направлении и нужно двигаться. У ардуино 10 bit АЦП.
То есть на пинах ограничение в 5V - это понятно. Точность в данном случае мне не важна, главное, чтобы была информация о сигнале: нет сигнала, очень низкий, низкий, средний и т.д. Вообще я хотел узнать максимально выдаваемое напряжение от геофона средствами Arduino (забыл упомянуть, я работаю с Uno). Но судя по всему придется использовать сторонние средства, напр. осцилограф. А возможно ли как то снизить порог значений с аналогового пина? Не могу сформулировать свой вопрос, но в общем, чтобы напряжению 2V и выше соответстовало значение с аналогового пина 1023, 1V - 512 и т.д. А не как сейчас 5V - 1024, 2,5V - 512.
Мне кажется, эта функция изменяет уже поступившие на пин значения в удобный для нас вид. А необходимо чтобы уже сразу на пин поступали значения в нужном диапазоне. Если это конечно возможно. В wiki сказано:
А зачем? Гораздо проще программно обработать то что поступило, чем создавать схемы для аппаратного подтягивания и округления значений. Тем более, что в диапазон укладывается.
Конечно можно. Вон в большом мире гравитационные волны экспериментально обнаружили, так что теперь теория относительности настолько же доказана, насколько и теория Дарвина, а тут - г. вопрос. Но осторожно. Референс для АЦП выбирается http://arduino.cc/en/Reference/AnalogReference либо Vcc (по умолчанию в ардуино), либо VREF (он выведен только в uno, на него можно подать референсное напряжение < Vcc), либо встроенный референс - 2,56 В для атмеги8 и 1,1 В для атмеги328. Соответственно значение 1023 будет соответсвовать тому напряжению, которое вы подадите на VREF, или 2,56 или 1,1 В. Но подавать нужно осторожно- чтобы напряжение на входе ацп не превысило эти значения (VREF, 2,56 или 1,1) желательно предусмотреть защиту из диодов или стабилитронов. Если будут трудности, сообщите более детально нужный диапазон, какая у вас ардуина и какой камень (8 вроде только на uno может быть, на mini и nano не видел), и мы подскажем более детально. А map() вам не нужен, голову не забивайте. Ваше желание использовать по максимуму динамический диапазон ацп мк понятно. map() тут не помощник.
а затем, что тс хочет. К тому же This feature is useful if we have sensors that output less than 5V and we need more precision. © классики
Спасибо. Рассмотрю поподробнее "analogReference". Посмотрел выдаваемое напряжение геофона на осцилографе - пиковые значения достигали 20V. Хорошо, что с Arduino'й ничего не случилось. Наверное, придется использовать полевой транзистор.
Спасибо. Действительно, используя супрессор (стабилитрон) удалось ограничить напряжение до 5V. А что подразумевается под делителем?