Київський клуб аматорів астрономії "Астрополіс"

astromagazin.net
* *
Ласкаво просимо, Гість. Будь ласка, увійдіть або зареєструйтеся.
23 Липня 2025, 11:34:22

Увійти

google


Автор Тема: Arduino и windows7  (Прочитано 5530 раз)

0 Користувачів і 1 Гість дивляться цю тему.

alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306
Re: Arduino и windows7
« Відповідь #40 : 01 Квітня 2015, 20:34:11 »
. - .

Цитувати
#define led_pin 13
#define btn_pin 2
void setup() {     
  pinMode(led_pin, OUTPUT);
  pinMode(btn_pin, INPUT);
  digitalWrite(led_pin, LOW);
  digitalWrite(btn_pin, LOW);
}
void loop() {
/* var 1
  if (digitalRead(btn_pin) == HIGH)
    digitalWrite(led_pin, HIGH);
  else
    digitalWrite(led_pin, LOW);
*/
/* var 2*/
  digitalWrite(led_pin, digitalRead(btn_pin));
}
Записаний

exez

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1886
  • Подяк: 708
  • Астроманьяк
Re: Arduino и windows7
« Відповідь #41 : 01 Квітня 2015, 21:19:34 »
. - .

второй вариант работает так же как мой. только все в одной строке.. :(

видать проблема в ардуинке.. перепутаны контакты.. значит будем писать приложение умышленно меняя положение пинов вкл на выкл :)
« Останнє редагування: 01 Квітня 2015, 21:28:08 від exez »
Записаний
чистого всем неба и длинных безлунных ночей...

alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306
Re: Arduino и windows7
« Відповідь #42 : 01 Квітня 2015, 21:43:35 »
. - .

второй вариант работает так же как мой
как именно? нажимаем кнопку - светодиод горит, отпускаем - гаснет ?
Записаний

exez

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1886
  • Подяк: 708
  • Астроманьяк
Re: Arduino и windows7
« Відповідь #43 : 01 Квітня 2015, 22:08:39 »
. - .

второй вариант работает так же как мой
как именно? нажимаем кнопку - светодиод горит, отпускаем - гаснет ?

если вешаю диод на 11канал и землю то горит при разомкнутой кнопке и заснет когда кнопка замыкается..

если плюс диода повесить на 3.3В а второй на канал11 - горит постоянно

если на 5В и канал11 - при разомкнутой кнопке горит чуть тусклее чем при замкнутой.
Записаний
чистого всем неба и длинных безлунных ночей...

wanowar

  • Offline Offline
  • Повідомлень: 184
  • Подяк: 37
Re: Arduino и windows7
« Відповідь #44 : 01 Квітня 2015, 23:29:27 »
. - .

C Arduino не знаком, но немного работал с AVR (они же на Arduino и стоят). Порты можно подключать через подтягивающий резистор на питание, а кнопку с порта на землю или наоборот. Разница лишь в том какой логический уровень будет при нажатой и отпущенной кнопке. Главное что бы порты не "висели в воздухе". Резисторы можно ставить 10к-100к. Либо же включить программно внутренние подтягивающие резисторы они там порядка 2к, если не ошибаюсь.

Чем мне нравится работать с микроконтроллерами напрямую, это тем, что начинаешь понимать что делаешь и как это работает. Минус в том, что сложнее проводить отладку и паяльником работать.

Записаний
Подякували


exez

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1886
  • Подяк: 708
  • Астроманьяк
Re: Arduino и windows7
« Відповідь #45 : 01 Квітня 2015, 23:36:55 »
. - .

разобрался со своей ардуинкой. все вроде норм работает.. завтра приезжают моторы и начнем ваять :)
Записаний
чистого всем неба и длинных безлунных ночей...

alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306
Re: Arduino и windows7
« Відповідь #46 : 01 Квітня 2015, 23:38:35 »
. - .

так а в чем проблема была ?
Записаний

wanowar

  • Offline Offline
  • Повідомлень: 184
  • Подяк: 37
Re: Arduino и windows7
« Відповідь #47 : 01 Квітня 2015, 23:50:49 »
. - .

завтра приезжают моторы и начнем ваять :)

Только напрямую не подключай, а то порты погорят либо вся микруха. Желательно еще иметь парочку транзисторов.
Если шаговик то лучше с готовым драйвером использовать.
Записаний

exez

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1886
  • Подяк: 708
  • Астроманьяк
Re: Arduino и windows7
« Відповідь #48 : 01 Квітня 2015, 23:58:11 »
. - .

так а в чем проблема была ?

LOW на кнопке это включена получается, а HIGH выключена. вроде как кнопка вверху и кнопка внизу.. вполне логично. я же думал что все наоборот. и Спасибо МиккиМаусу что подсказал это.
Записаний
чистого всем неба и длинных безлунных ночей...

exez

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1886
  • Подяк: 708
  • Астроманьяк
Re: Arduino и windows7
« Відповідь #49 : 01 Квітня 2015, 23:59:26 »
. - .

и СПАСИБО ВСЕМ ВАМ за терпение.. на самом деле без ВАС было бы сложно в этом разобраться.  :beer:

СПАСИБО!

зы: буду еще напрягать дурными вопросами. их еще так много..  :shuffle:
Записаний
чистого всем неба и длинных безлунных ночей...

wanowar

  • Offline Offline
  • Повідомлень: 184
  • Подяк: 37
Re: Arduino и windows7
« Відповідь #50 : 02 Квітня 2015, 00:27:47 »
. - .

LOW на кнопке это включена получается, а HIGH выключена. вроде как кнопка вверху и кнопка внизу.. вполне логично. я же думал что все наоборот. и Спасибо МиккиМаусу что подсказал это.


Если я правильно понимаю, так как со средой разработки Ардуиной не знаком:
то LOW - это низкий логический уровень на порте т.е. земля или 0,
а HIGH - это высокий логический уровень т.е на ножку будет подано напряжение питания.
Исходите из этого. С LED в каком положении кнопки он будет светится еще будет зависеть от полярности подключения. С подлючением кнопки аналогично


В первом случае при отпущеной кнопке на ножке будет высокий кий логический уровень, во втором низкий.
С кнопками еще нужно не забывать про "дребезг контактов". Для простого мигания светодиодом это не критично.
« Останнє редагування: 02 Квітня 2015, 00:53:50 від wanowar »
Записаний

alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306
Re: Arduino и windows7
« Відповідь #51 : 02 Квітня 2015, 00:50:49 »
. - .

можно для удобства и такой #define применить
Код: [Select]
#define key_pressed 0
void setup()
{
  pinMode(2, INPUT_PULLUP);
}
void loop()
{
  if (digitalRead(2) == key_pressed) {
    // bla-bla
  }
}
Записаний

exez

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1886
  • Подяк: 708
  • Астроманьяк
Re: Arduino и windows7
« Відповідь #52 : 02 Квітня 2015, 09:43:49 »
. - .

почему не рекомендуют пользоваться внутренним сопротивлением используя функциЮ PULLUP?
Записаний
чистого всем неба и длинных безлунных ночей...

alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306
Re: Arduino и windows7
« Відповідь #53 : 02 Квітня 2015, 09:53:54 »
. - .

а шуть его знает ?
это у Максутика надо спрашивать.
я вчера проверил INPUT_PULLUP - прекрасно работает внутренний резистор.
внешний резистор уже отложил в сторону...
 :)
Записаний

alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306
Re: Arduino и windows7
« Відповідь #54 : 02 Квітня 2015, 10:01:10 »
. - .

http://arduino.ru/Tutorial/DigitalPins
Микроконтроллер Atmega имеет программируемые встроенные подтягивающие к питанию резисторы 20 кОм. Программирование данных резисторов осуществляется следующим образом.
pinMode(pin, INPUT);         // назначить выводу порт ввода
digitalWrite(pin, HIGH);       // включить подтягивающий резистор

вот как у них тут написано - так у меня не заработало.
а если сделать просто вот так: pinMode(pin, INPUT_PULLUP);
то на разомкнутом пине сразу уже читается стабильная "1".
Записаний

Kruz

  • Offline Offline
  • Повідомлень: 20
  • Подяк: 5
Re: Arduino и windows7
« Відповідь #55 : 02 Квітня 2015, 10:33:31 »
. - .

Подтягивание внутренним резистором - возможно. И команды правильные. Но есть "НО" - сопротивление внешней нагрузки, которая подключается к этому пину. Если сопротивление его маленькое - например транзисторный ключ и не дай бог по схеме с общим коллектором, то выходное напряжение этого пина может "плавать". Посему, в целях назовем это так - помехозащищенности - ставят внешний подтягивающий резистор с сопротивлением, намного меньшим, чем внутренний подтягивающий. К примеру - внутренний имеет 20кОм, а внешний ставят - 4,5кОм например. Можно и меньше - 1 кОм, хуже не будет. Тогда стабильность выходного напряжения на пине будет выше. Да и резистор - штука недорогая )
Если нагрузка на пин будет в виде входа микросхемы, то можно оставить подтяжку внутренним резистором ибо входное сопротивление микросхем(кмоп, да и ттл) очень большое.

И еще, коллеги, я тут не видел достаточно животрепещущей темы касательно Ардуины - тема надежности ее работы. Дело в том, что у всех ардуин, кроме Arduino Duemilanove - стандартная прошивка, в которой не отрабатывается контроль watchdog-таймера.  Результат: почти любая помеха и ардуина клинит. Разработчики систем на атмеге в курсе этих дел. Уже давно решение - прошить прошивку optboot. Никому неясно, по какой причине оптибут не стала стандартной на ардуине, это второй вопрос. Так вот - оптибут контроллирует вотчдог таймер и проблемы зависания отсутсвуют. Проверено мною в процессе долгих мытарств.
Если кстати надо, могу помочь в прошивке оптибута, а то был случай у товарища, как он чуть не сварил рыб в аквариуме нагревателями, подключенными к нестабильной ардуине ))
Записаний
Подякували

alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306
Re: Arduino и windows7
« Відповідь #56 : 02 Квітня 2015, 10:44:20 »
. - .

скажем так - внутреннего подтягивающего резистора хватает с головой, если на цифровой вход будет цепляться обычная кнопка.

__
а про optiboot надо будет почитать: http://code.google.com/p/optiboot/
« Останнє редагування: 02 Квітня 2015, 10:50:35 від alex~ »
Записаний

Kruz

  • Offline Offline
  • Повідомлень: 20
  • Подяк: 5
Re: Arduino и windows7
« Відповідь #57 : 02 Квітня 2015, 10:50:15 »
. - .

Не совсем. Если цифровой пин работает именно на вход, обязательно ставить резистор 10к к примеру для подтяжки и не надеяться на внутренний резистор. Можно понадеяться на внутренний, но я бы не стал, хотя это дело вкуса )
Записаний

alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306
Re: Arduino и windows7
« Відповідь #58 : 02 Квітня 2015, 10:59:06 »
. - .

тогда не совсем ясно: для каких целей этот резистор был внедрен в МК ?
Записаний

MAKsutik

  • Offline Offline
  • Повідомлень: 4715
  • Подяк: 256
  • Ищи на третьей планете.
    • Project EQDrive
Re: Arduino и windows7
« Відповідь #59 : 02 Квітня 2015, 11:07:29 »
. - .

а шуть его знает ?
это у Максутика надо спрашивать.
я вчера проверил INPUT_PULLUP - прекрасно работает внутренний резистор.
внешний резистор уже отложил в сторону...
 :)
Читал тоже за траблы с PULLUP на ардуино, но пока у меня не попадалось, в конструкциях на своей печатке я всегда ставлю внешнюю подтяжку к плюсу если нужна.
По кнопкам предпочитаю что бы они коммутировались на землю.

Также рекомендую реализовать защиту от "дребезга контактов" а то могут быть и ложные срабатывания. Можно элементарно увеличивать значение выбранной переменной, то есть кнопка замкнута считаем там к примеру до 100, кнопка отжата минусуем, дошли до 100 значит кнопка нажата.

Вот реализации еще http://ardushop.ru/drebezg-kontaktov-i-sposoby-podavleniya-drebezga/ вариантов море

 
« Останнє редагування: 02 Квітня 2015, 11:13:57 від MAKsutik »
Записаний