Оператор if с несколькими условиями
- Войдите на сайт для отправки комментариев
Ср, 04/01/2017 - 19:19
Всем привет!
Помогите чайнику
Задача получить постоянно на выходе №9 - 2,3В, при входном сигнале на входе №7 - 3,0В, при входном сигнале на входах №7 и №8 - 4,1В
int in1Pin = 7; int in2Pin = 8; int outpin = 9; void setup() { pinMode(outpin, OUTPUT); //устанавливаем 9 контакт в режим вывода pinMode(in1Pin, INPUT); pinMode(in2Pin, INPUT); } void loop() { if (digitalRead(in1Pin) == HIGH) { analogWrite(9, 153); } else if (digitalRead(in1Pin) == HIGH && digitalRead(in2Pin) == HIGH) { analogWrite(9, 209); } else { analogWrite(9, 118); } }
Задача получить постоянно на выходе №9 - 2,3В, при входном сигнале на входе №7 - 3,0В, при входном сигнале на входах №7 и №8 - 4,1В
Это невозможно.
Ищите другой способ сделать то, что Вам нужно.
Задача получить постоянно на выходе №9 - 2,3В, при входном сигнале на входе №7 - 3,0В, при входном сигнале на входах №7 и №8 - 4,1В
Это невозможно.
Ищите другой способ сделать то, что Вам нужно.
Может циклом FOR или что то подобное?
неужели никак нельзя это сделать?
Вы по русски понимаете? Посмотрите в словаре слово "невозможно".
По-руссски понимаю.
Можете объяснить почему невозможно?
А если так?
analogWrite(pin, value)
Параметры
Программно не возможно, так как с завода ардуина выпускается с постояными напряжениями на портах - вам надо решать проблему преобразования напряжения железом (по полученному сигналу с контроллера )
[/quote]
По-руссски понимаю.
Похоже, нет. Иначе бы не спрашивали
А если так?
потому что слово "невозможно" предполагает "никак". Говорил же - посмотрите в словаре!
Можете объяснить почему невозможно?
Ну, вот с этого вопроса и надо было начинать.
Потому, что на выходы, как Вы их назвали, данного контроллера можно выдать либо 0В, либо напряжение питания (обычно 5В или 3.3В). На некоторые выходы (не на все) можно выдать т.н. ШИМ - это те же самые 0В и напряжение питания, но не постоянные а все время прыгающие с 0 до питания и обратно с некоторой частотой и скважность.
И ничего другого туда выдать нельзя - ни 2,3В, ни - 4,1В. Ну, не умеет контроллер этого! Забудьте.
В принципе напряжения типа 2,3В, 4,1В можно сделать из ШИМ, но это надо именно делать - нужна доплнительная схема из трёх деталей - на самом выходе получить такие напряжени нельзя никак.
Можно кренки поставить и выбирать кренку с нужным уровнем напряжения
А можно взять http://arduino.ru/Hardware/ArduinoDue с двумя ЦАП и иметь два любых напряжения.
Вы бы написали чего Вам точно нужно, а главное, что Вы потом собираетесь делать с этими напряжениями, мож Вам помогли бы чем-нибудь. Сказали бы как можно их попроще получить.
1. Вот модель того, что можно получить на выходе Ардуино.
Там, где написано Pulse выход ШИМ от контроллера. Зеленый вольтметр (№1 его показывает. Для примера настроено 15% ШИМ. Это около 0.7 В.
резистор 100 Ом и конденсатор 220 мкФ создают интегрирующую цепочку, или фильтр, как будет угодно. Сопротивление 2К - нагрузка. Вольтметр номер 2 (синий) показывает гапряжение на нагрузке.
2. Вот картинка с эмулятора.
параметры фильтра зависят от нагрузки. При некоторых условиях фильтр невозможно сделать.
Вот поэтому автора и спрашивают: для чего нужен выход? Как автор планирует его использовать? На какую нагрузку?
По большому счету, ответ Евгения правильный - то, что можно получить от контроллера, выровняв фильтром, не годится почти НИ ДЛЯ КАКОЙ нагрузки.
Только для измерения или косвенного использования, как сигнала, например для сервомотора.
Только для измерения или косвенного использования, как сигнала, например для сервомотора.
Да и то ... я всегда ставлю операционный усилитель. Вот типичная схема, которую я всегда использую, если надо напряжение от 0 до 5. +7В означает - "не меньше", т.к. усилитель не rail-to-rail. Если надо другое напряжение - (там до 12В или типа того) - два дополнительных резистора вполне спасают отца русской демократии.
Гениально! Зачем вообще для такой задачи ардуина? Надо просто взять три(или одну) регулируемую кренку.
Можете запилить простой блокинг генератор на дросселе транзисторе и диоде, правильно расчитав частоту и дроссель получите на выходе желаемое,можете использовать i2C или SPI АЦП, у AnalogDevice их куча, ну или собрать сами по схеме R-2R