Технический форум по робототехнике.
Rigo Legio » 30 ноя 2011, 18:49
А как для этого кода лучше подключать кнопку? У кнопки 3 контакта, как ее подключать?
EasyTech » 30 ноя 2011, 19:40
Используй 2 контакта, первый и третий, первый через резистор ~100Ом подключи к МК, а вторую часть кинь на +5В.
так как изначально pind.0 = 1 => одну часть на +5В (помоему так), т.к. при нажатии на кнопку передастся 0 и pind.0 = 0 и если он равен нулю значит впереди препятствие.
(насчет распиновки кнопки посмотри сам, сделай так, одну часть кнопки подключи к акб, другую к светодиоду, если при нажатии светик загорелся значит взял нужные контакты))
Добавлено спустя 52 секунды:
Сразу говорю, учи winAVR, на бейсике далеко не уйдешь!
Rigo Legio » 30 ноя 2011, 19:42
Спасибо за совет)) пока я смог понять только бэйсик, другие языки пока понять не могу)
Rigo Legio » 03 дек 2011, 18:52
Так, а код не работает. Моторы просто крутятся, и при нуле на ножке мк и при единице, моторы все равно крутятся)
EasyTech » 04 дек 2011, 09:24
Кнопку правильно подключаешь? те контакты?
Код должен работать, p.s. я с бейсиком уже 3 месяца не работаю, мож где ошибся. я тебе скинул ссыль с которой брал код для своего робота, он 100% работает!
Rigo Legio » 04 дек 2011, 16:52
те контакты, даже банально пробовал проводком да ножки мк дотрагиваться, толку 0
Добавлено спустя 1 час 19 минут 58 секунд:
А вот еще, на том сайте, ссылку на который вы дали, написано " Датчики цеплять так:
Одна нога на порт, другая на землю." Это как? какую ногу на порт, а какую на Землю? И третья нога в воздухе висеть будет?
И еще, строки про Шим можно убрать? У меня то он не будет использоваться.
Rigo Legio » 07 дек 2011, 21:52
Разобрался со всем но, опять проблемы - почему то при включении сразу начинается выполнение программы, как будто нажат один из датчиков, хотя они не нажаты. Кнопки подключены правильно, оби ноги мк на 1, т.е. закорочены на землю. При нажатии на датчик на ногу будет идти +5 вольт. Вот код
- Код: Выделить всё • Развернуть
'************************************************************
$regfile = "ATtiny2313.DAT" ' файл спецификации тини2313
$crystal = 4000000 ' указываем на какой частоте будем работать
Config Pind.2 = Output : Dr1 Alias Portd.2
Config Pind.3 = Output : Dr2 Alias Portd.3
Config Pind.4 = Output : Dr3 Alias Portd.4
Config Pind.5 = Output : Dr4 Alias Portd.5
Config Pind.0 = Input : Vpravo Alias Portd.0 ' праый датчик цепляется на PD.0 Тини2313
Config Pind.1 = Input : Vlevo Alias Portd.1 ' левый датчик цепляется на PD.1 тини2313
'************************************************************
Vpravo = 1
Vlevo = 1
'********************Основной цикл***************************
Do
Gosub Прямо
If Pind.1 = 0 Then
Gosub Назад : Waitms 400 : Gosub Налево : Waitms 400
Elseif Pind.0 = 0 Then
Gosub Назад : Waitms 400 : Gosub Направо : Waitms 400
End If
Loop
'********************Комбинации моторов**********************
Налево: ' едем налево
Dr1 = 0 : Dr2 = 1 : Dr3 = 1 : Dr4 = 0 :
Return
Направо: ' едем направо
Dr1 = 1 : Dr2 = 0 : Dr3 = 0 : Dr4 = 1 :
Return
Прямо: ' едем прямо
Dr1 = 1 : Dr2 = 0 : Dr3 = 1 : Dr4 = 0 :
Return
Назад: ' едем назад
Dr1 = 0 : Dr2 = 1 : Dr3 = 0 : Dr4 = 1 :
Return
Стоп: ' стоим на месте
Dr1 = 0 : Dr2 = 0 : Dr3 = 0 : Dr4 = 0 :
Return
avr123.nm.ru » 08 дек 2011, 23:10
аватар подбешивает
Rigo Legio » 09 дек 2011, 15:07
с прогой разобрался, заработало.
А насчет авы - надо поменять, хотя в тот момент она точно отображала мое состояние)