Как аналоговые пины A0 A1 A2... использовать как цифровые?
- Войдите на сайт для отправки комментариев
Чт, 10/04/2014 - 10:55
День добрый!
подскажите хочу перенести внешние сигналы с цифровых d2 d3 на аналоговые a0 a1 как написать в программе?
int Enable_Sensor_1 = 2; // датчик 1 int Enable_Sensor_2 = 3; // датчик 2 void setup() { digitalWrite(Enable_Sensor_1, HIGH); // деактивация датчика 1 digitalWrite(Enable_Sensor_2, HIGH); // деактивация датчика 2 }
Вы не поверите ;), но нужно просто сказать о своем желании не форуму, а ардуине ;)
Только ваш код скоре всего не будет ни на аналоговых, ни на цифровых работать. Не знаю что вы хотели сделать, но сдели вот что: "включили подтягивающий резистор на пинах Enable_Sensor_1, и Enable_Sensor_2). Вернее может быть и будет работать, но "если повезет". "Плавающие глюки" - могут появится влюбой момент.
P.S. Кстати, ответ на свой вопрос, вы могли найти в документации http://arduino.ru/Reference/DigitalWrite . Там "чуть-чуть по другому выглядит", но работать будет так-же.
P.S.S. И зачем тип int использовался?
спасибо!!!
я конечно подозревал что все так просто, но проверю попозже сейчас нет под рукой платы.
какой тип использовать ? boolean?
брал с примеров. да даже в примере по ссылке int стоит
int
ledPin = 13;
// Светодиод подключенный к вход/выходу 13
void
setup()
{
pinMode(ledPin, OUTPUT);
// устанавливает режим работы - выход
}
пропущены строки ? я их не указал специально.
pinMode(Enable_Sensor_1, OUTPUT); // устанавливает режим работы - выход
pinMode(Enable_Sensor_2, OUTPUT); // устанавливает режим работы - выход
ну насчет работы на цифровых все работает, а почему то недолжен?, да правильно включил высокий на датчиках на обоих это в setup, ниже я им по очереди LOW подключаю.
нетак то что?
А еще 14 , 15, 16 , 17, 18, 19.
не так - Вы не провели инициализацию пинов, как OUTPUT, командой pinMode, потому пины работают, как входы с подтяжкой к плюсу, через резистор 20 кОм.
да это есть, просто не стал выкладывать ибо понятно, а вот со входами аналоговыми было не понятно.
всем спасибо!
> а почему то недолжен?
Не, ну вы смешной. Ну представте что вы позвали соседа-автоэлектрика. Помочь поменять в фарах лампочки с обычных на ксенон. Так как "через час в дорогу... а светят очень плохо". В процессе он заглядывает под капот и восклицает "куда ты ехать собрался? У тебя же вместо тросика газа какая-то ниточка привязана!!! Далеко ты не уедешь". На что вы удивленно(!) смотрите на него: "Почему это не уеду? Запросто уеду. Я тросик в багажник специально спрятал. Да и со старыми лампами, пробовал газ нажимать - нормально движок обороты набирает".
>да правильно включил высокий на датчиках
Срочно прекращайте ожидать на форуме телепатов. Иначе либо игронить будут, либо троллить все кому не лень. По коду который вы ПОКАЗАЛИ, вы не включали высокий. Вы включали подтягивающий резистор. И что в итоге будет на пине, высокий или низкий - зависит от сопротивления нагрузки на пине и фазы луны.
Вообщем всегда перечитывайте свое сообщение глазами человека которые не видит вашей схемы, не знает что вы делаете, не смотрит вам через плечо, не знает что вы задумали. Представте себе что вы взяли себе советчика-помошника. Который парализован и сидит за ширмой. Может только слышать вас и посмотреть на бумажку которую вы ему принисете. К тому же - со склерозом (может через пол часа забыть что вы ему говорили раньше). Вот такому "консультанту" вы и должны объяснить "что у вас происходит и что вы хотите".
>какой тип использовать ? boolean?
А почему boolean? Какие возможные значения бывают у булеан? Что вам нужно сохранить туда? Номер пина. Каким может быть номер пина? Может быть дробным? насколько большим может быть? Может быть отрицательным? Возмите бумажку, ответте на все эти вопросы. Потом идете в раздел програмирование, читаете про ВСЕ типы данных. И подбираете какой "минимально подходит" (сможет не потерять значение и при этом не расходовать лишнюю память).
Вообщем вам нужно самому научится подбирать нужный тип данных под конкретную ситуацию, а не "потому что кто-то на форуме сказал" или "в примере так". И на форуме и авторы примеров - люди. Которые могут быть ошибаться, могут быть не аккуратными (а... и так сойдет), могут быть "вредителями".
ну так мы тоже учимся :)
1
все понятно. спасибо!ну растолкуйте пожалуйста эти строки:
Руководство на микроконтроллер Atmega не рекомендует производить быстрое переключение между аналоговыми входами для их чтения. Это может вызвать наложение сигналов и внести искажения в аналоговую систему. Однако после работы аналогового входа в цифровом режиме может потребоваться настроить паузу между чтением функцией analogRead() других входов.
ну растолкуйте пожалуйста эти строки:
Руководство на микроконтроллер Atmega не рекомендует производить быстрое переключение между аналоговыми входами для их чтения. Это может вызвать наложение сигналов и внести искажения в аналоговую систему. Однако после работы аналогового входа в цифровом режиме может потребоваться настроить паузу между чтением функцией analogRead() других входов.
А с какой целью интересуемся?
...это значит, что для аккуратного чтения аналогового значения нужно сделать паузу, или просто отбросить первое измерение, сделанное после любой манипуляции с аналоговыми входами.
то есть если в скетче они будкт использоваться исключительно как цифровые, то заморачиваться ни о чем не стоит?
то есть если в скетче они будкт использоваться исключительно как цифровые, то заморачиваться ни о чем не стоит?
TRUE так.