Плата управления шаговым двигателем
Вложений: 3
Здравствуйте,так как собираюсь делать чпу станок, решил изготовить плату для проверки имеющихся шаговых двигателей. Все собрал по схеме, однако при подключении и нажатии кнопок двигатель не крутится, светодиод не горит. Подскажите пожалуйста, в чем может быть проблема?
|
А в тиньку (ATTiny 2313) то программу заливали ? Или "пустой" чип поставили ?
|
Вложений: 2
Заливал через uniprof программатором громова. Отлично прошился, правда фьюзы точно не уверен что правильно расставил, но те, которые блокируют контроллер не трогал. Еще не уверен что правильно перемычки на плате припоял (на фото обведено). Проверьте пожалуйста.
|
Ну по схеме не знаю, вроде , на первый взгляд, все нормально, программу бы глянуть, если она есть в исходниках, что бы посмотреть когда там светодиод должен зажигаться ... по моему он и без "силовой" части должен гореть ... а значит дело в тиньке, смотреть фьюзы - на предмет внутреннего/внешнего тактирования ... ну и я бы по питанию , возле тиньки, хотя бы один фильтрующий кондер все же бы припаял ... может у вас тинька просто не "заводиться", хотя если программировали ее прямо на этой плате, то вроде должна работать
|
вот код
$regfile = "2313def.dat" $crystal = 4000000 Dim S As Byte 'эта переменная следит за номером шага двигателя S = 1 On Int0 Knopka1 'даем имена обработчикам внешних прерываний On Int1 Knopka2 Config Portb = Output 'конфигурируем порт на выход Config Portd.5 = Output 'конфигурируем ногу для подключения светодиода Led Alias Portd.5 'присваиваем имя LED выводу 5 порта D 'прерывания будут генерироваться пока на ноге низкий уровень, то есть пока кнопка будет нажата Config Int0 = Low Level Config Int1 = Low Level 'разрешаем прерывания Enable Interrupts Enable Int0 Enable Int1 'основной цикл программы, просто ждем прерывания Do Loop Knopka1: 'обработчик прерывания первой кнопки Led = 1 'зажигаем светодиод Incr S 'увеличим номер шага If S = 9 Then 'максимально возможный номер шага = 8 S = 1 End If Select Case S 'выбираем какие обмотки включать в зависимости от номера шага Case 1 : Portb = &B00000001 Case 2 : Portb = &B00000011 Case 3 : Portb = &B00000010 Case 4 : Portb = &B00000110 Case 5 : Portb = &B00000100 Case 6 : Portb = &B00001100 Case 7 : Portb = &B00001000 Case 8 : Portb = &B00001001 End Select Waitus 1000 'задержка между шагами Led = 0 'гасим светодиод Return Knopka2: 'обработчик прерывания второй кнопки Led = 1 'зажигаем светодиод Decr S 'тут все тоже самое, только в обратном направлении If S = 0 Then 'минимально возможный номер шага = 1 S = 8 End If Select Case S Case 1 : Portb = &B00000001 Case 2 : Portb = &B00000011 Case 3 : Portb = &B00000010 Case 4 : Portb = &B00000110 Case 5 : Portb = &B00000100 Case 6 : Portb = &B00001100 Case 7 : Portb = &B00001000 Case 8 : Portb = &B00001001 End Select Waitus 1000 Led = 0 'гасим светодиод Return End |
Ну судя по коду, светодиод должен, как минимум мигать (если конечно вы у него полярность не перепутали) при нажатии любой из кнопок, не зависимо от "силовой" части драйвера ... так что для начала "пинайте" тиньку, как начнет мигать - можно, переходить к "силовой" части ...
|
т.е можно даже не подключая двигатель подать 5V на контроллер и светодиод должен моргать?
|
Цитата:
|
А если светодиод стоит правильно, в чем тогда причина может быть (того что он не моргает)?
|
Ну самое вероятное, что то с Тинькой, не прошилась, не "заводится" - например фьюзы прошиты на внешний кварц ...
Что то с питанием или с помехами по питанию ... Наконец сам светодиод сгоревший, или сопротивление на светодиоде ошибочно слишком большое ... Попробуйте для начала вынуть тиньку и подать +5в на панельку на 9 ногу , если диод загорится , значит дальше мучать уже тиньку Да я там по вашему монтажу не разбирался, но желательно еще reset подтянуть к +5в через резистор (4.7к), это 1 нога |
Часовой пояс GMT +4, время: 03:32. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.