Мазмуну:

Arduino 2-in-1 Model Train Controller: 4 Steps
Arduino 2-in-1 Model Train Controller: 4 Steps

Video: Arduino 2-in-1 Model Train Controller: 4 Steps

Video: Arduino 2-in-1 Model Train Controller: 4 Steps
Video: I Made an Automated Model Train With An Arduino! 2024, Июль
Anonim
Arduino 2-жылы 1 моделдин поезд контроллери
Arduino 2-жылы 1 моделдин поезд контроллери

Кырк жыл мурун мен бир нече достор үчүн оп-ампка негизделген поезд дроссельин ойлоп тапкам, андан төрт жыл мурун мен аны PIC микроконтроллеринин жардамы менен кайра жараткам. Бул Arduino долбоору PIC версиясын кайра жаратат, бирок дроссель, тормоз жана багытты көзөмөлдөө үчүн кол которгучтардын ордуна Bluetooth туташуусун колдонуу мүмкүнчүлүгүн кошот. Бул жерде мен сунуштаган дизайн 12 вольттук модель темир жол моторуна багытталган, бирок аны башка DC кыймылдаткычын башкаруунун башка түрлөрү үчүн оңой эле өзгөртүүгө болот.

1 -кадам: Pulse Width Modulation (PWM)

Pulse Width Modulation (PWM)
Pulse Width Modulation (PWM)

PWM менен тааныш эмес адамдар үчүн, бул угулгандай коркунучтуу эмес. Моторду башкаруунун жөнөкөй колдонмосу үчүн чындыгында, биз кандайдыр бир жыштыктагы төрт бурчтуу толкунду пайда кылабыз, андан кийин биз кызмат циклин өзгөртөбүз. Милдет цикли толкун формасына салыштырмалуу логикалык жогорку болгон убакыттын катышы катары аныкталат. Сиз муну жогорудагы диаграммада 10% жумуш циклинде жогорку толкун формасы, 50% милдет циклинде орто толкун формасы жана 90% милдет циклинде төмөнкү толкун формасы менен так көрө аласыз. Ар бир толкун формасында капталган сызыктуу сызык кыймылдаткыч көргөн эквиваленттүү DC чыңалуусун билдирет. Arduino PWM жөндөмүнө ээ экенин эске алганда, DC моторун башкаруунун бул түрүн түзүү абдан жөнөкөй. PWMди колдонуунун дагы бир артыкчылыгы - бул моторду түз токту колдонууда боло турган иштин башталышынан сактоого жардам берет. PWMдин бир кемчилиги, кээде PWM жыштыгында мотордон угулган үндүн болушу.

2 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык

Биринчи сүрөт өчүргүчтөр жана LM298 мотор айдоочу модулу үчүн Arduino байланыштарын көрсөтөт. Ардуинонун ичинде алсыз тартуучу резисторлор бар, андыктан өчүргүчтөр үчүн тартуучу резисторлордун кереги жок. Багыттагы которгуч - бул жөнөкөй SPST (бир полюстук бир ыргытуу) алмаштыргычы. Throttle жана Brake өчүргүчтөрү кадимкидей ачык, убактылуу байланыш баскычтары катары көрсөтүлөт.

Экинчи сүрөттө Bluetooth модулу жана LM298 мотор айдоочу модулу үчүн Arduino байланыштары көрсөтүлгөн. Bluetooth TXD чыгаруу Arduino RX сериялык кирүүсүнө түз туташат.

Үчүнчү сүрөт-L298N кош H-көпүрө модулу. LM298 модулунда 5 вольттук жөндөгүч бар, ал секиргич аркылуу иштетилет. Бизге Arduino жана Bluetooth үчүн +5 вольт керек, бирок биз +12 вольтту моторду айдашын каалайбыз. Бул учурда биз +12 вольтту L298Nдин " +12V күчү" киришине колдонобуз жана "5V иштетүү" секирүүчүсүн ордунда калтырабыз. Бул 5 вольттуу жөндөгүчтү модулдагы "+5 кубаты" туташуусуна чыгарууга мүмкүндүк берет. Муну Arduino жана Bluetooth менен туташтырыңыз. +12 киргизүү жана +5 чыгаруу үчүн жерге өткөрүүчү зымдарды "power GND" модулуна туташтырууну унутпаңыз.

Биз моторго чыгуу чыңалуусу Arduino түзгөн PWMдин негизинде толук же өчүп калуунун ордуна өзгөрүп туруусун каалайбыз. Бул үчүн биз "ENA" жана "ENB" секиргичтерин алып салабыз жана Arduino PWM чыгаруубузду модулдагы "ENA" га туташтырабыз. Чыныгы иштетүүчү пин тактанын четине эң жакын экенин эстен чыгарбаңыз ("киргизүү" казыктарынын жанында). Ар бир иштетүү үчүн арткы пин +5 вольт, ошондуктан биз ага туташпаганыбызды текшергибиз келет.

Модулдагы "IN1" жана "IN2" төөнөгүчтөрү тиешелүү Arduino казыктарына туташтырылган. Бул казыктар мотордун багытын көзөмөлдөйт жана ооба, Arduino модулга жөн эле туташтыруунун ордуна аларды башкарууга жакшы негиз бар. Эмне үчүн программалык камсыздоону талкуулоодо көрөбүз.

3 -кадам: Bluetooth модулу

Bluetooth модулу
Bluetooth модулу

Бул жерде көрсөтүлгөн сүрөт жеткиликтүү Bluetooth модулдарына мүнөздүү. Сатып алууну издеп жатканда, сиз "HC-05" жана HC-06 "деген терминдерди издей аласыз. Экөөнүн ортосундагы айырмачылыктар программада жана көбүнчө тактадагы төөнөгүчтөрдүн санында. Жогорудагы сүрөт HC-06 модулунда жана жөнөкөйлөтүлгөн программалык камсыздоо менен келет, ал жөн гана эң негизги конфигурацияга мүмкүндүк берет. Ал ошондой эле "Кул" Bluetooth түзмөгү катары коюлган. Жөнөкөй сөз менен айтканда, ал "Мастер" түзмөгүнүн буйруктарына гана жооп бере алат жана өз алдынча буйрук бере албайт. HC-05 модулу көбүрөөк конфигурация мүмкүнчүлүктөрүнө ээ жана аларды "Мастер" же "Кул" түзмөгү катары коюуга болот. HC-05, адатта, HC-06 үчүн жогоруда көрсөтүлгөн төртөөнүн ордуна алты төөнөгүчкө ээ. Мамлекеттик пин чындыгында маанилүү эмес, бирок кандайдыр бир конфигурацияны кылгыңыз келсе, ачкыч пини (кээде "EN" сыяктуу башка аттар менен аталат) талап кылынат. Жалпысынан алганда, модулдарга эч кандай конфигурациянын кереги жок, эгерде сиз 9600 деъгээлинде берилүүчү ылдамдык менен макул болсоңуз жана модулга конкреттүү ат коюуга көңүл бурбасаңыз. Менде аларды колдонгон бир нече долбоорлор бар, ошондуктан мен аларды ошого жараша атагым келет.

Bluetooth модулдарын конфигурациялоо RS-232 сериялык портуна же USB портуна интерфейсти сатып алууну же курууну талап кылат. Мен бул постто кантип куруу керектигин айтпайм, бирок сиз интернеттен маалымат таба алышыңыз керек. Же жөн эле интерфейсти сатып алыңыз. Конфигурация буйруктары AT буйруктарын телефон модемдери менен байыркы убакта колдонулган сыяктуу колдонот. Мен бул жерге ар бир модулдун түрү боюнча AT буйруктарын камтыган колдонмо көрсөтмөсүн тиркеп койгом. Белгилей кетчү нерсе, HC-06 UPPERCASE буйруктарын талап кылат жана буйрук сабы 1 секунда ичинде бүтүшү керек. Башкача айтканда, бадын ылдамдыгын өзгөртүү сыяктуу узунураак саптарды кыскартып, терминалдык программаңызга чапташыңыз керек же жөнөтүү үчүн текст файлдарын орнотушуңуз керек болот. UPPERCASE талабы конфигурация буйруктарын жөнөтүүгө аракет кылып жатсаңыз гана болот. Кадимки байланыш режими каалаган 8 бит маалыматын кабыл ала алат.

4 -кадам: Программалык камсыздоо

Программалык камсыздоо кол менен чыгаруу үчүн да, Bluetooth версиясы үчүн да абдан жөнөкөй. Bluetooth версиясын тандоо үчүн жөн эле "#define BT_Ctrl" билдирүүсүн комментарийлеңиз.

Мен PIC кодун жазганда мен PWM жыштыгын сынап көрүп, акыры 500 Гцке жайгаштым. Мен эгер жыштык өтө жогору болсо, анда LM298N модулу импульстарга жетишерлик тез реакция кыла албастыгын билдим. Бул чыңалуу чыгышы сызыктуу эмес экенин жана чоң секириктерди алышы мүмкүн экенин билдирген. Arduino PWM буйруктарына ээ, бирок алар жыштыкты эмес, кызмат циклин өзгөртүүгө мүмкүндүк берет. Бактыга жараша, жыштык болжол менен 490-Гц, ошондуктан мен ПИКте колдонгон 500 Гцке жакын.

Поезд дроссельдеринин "өзгөчөлүктөрүнүн" бири - чыныгы поезддин кантип иштээрин симуляциялоо үчүн ылдамдатуу жана тормоздоо үчүн импульс сезими. Муну аткаруу үчүн, программалык камсыздоонун кол версиясынын циклине жөнөкөй убакыт кечигүүсү киргизилет. Көрсөтүлгөн мааниде, 0дөн 12 вольтко же 12 вольттон нөлгө чейин кетүү үчүн болжол менен 13 секунд талап кылынат. Кечигүү узак же кыска убакытка оңой эле өзгөртүлүшү мүмкүн. Импульстун күчүнө кирбеген бир гана жагдай - бул Багыттагы которгучту алмаштыруу. Коргоо максаттары үчүн PWMдин иштөө цикли бул которгуч өзгөргөн сайын дароо 0% га коюлат. Бул, чынында, Багыттагы которгучту авариялык тормоз катары эки эсе кылат.

Багыттагы которгучтун дароо иштешин камсыз кылуу үчүн, мен анын кодун үзгүлтүккө учуроочуга койдум. Бул бизге "өзгөртүү боюнча үзгүлтүккө учуроо" функциясын колдонууга мүмкүндүк берет, андыктан өзгөрүүнүн төмөндөн жогоруга же бийиктен төмөнгө чейин болушу маанилүү эмес.

Программанын Bluetooth версиясы Алга, Артка, Тормоз жана Муунтуу функцияларын баштоо үчүн бир тамга буйруктарын колдонот. Чынында, алынган буйруктар кол которгучтарды алмаштырат, бирок ошол эле жоопторду пайда кылат. Мен Bluetooth көзөмөлдөө үчүн колдонгон колдонмо Next Prototypes тарабынан "Bluetooth Serial Controller" деп аталат. Бул виртуалдык баскычтопту конфигурациялоого жана ар бир баскыч үчүн жеке командалык саптарды жана аттарды коюуга мүмкүндүк берет. Бул дагы кайталануучу ылдамдыкты коюуга мүмкүндүк берет, андыктан мен 14 секундга момент берүү үчүн тормоз жана дроссель баскычтарын 50msге койдум. Мен Алга жана Артка баскычтары үчүн кайталоо функциясын өчүрдүм.

Бул бул пост үчүн. Менин башка көрсөтмөлөрүмдү карап көрүңүз. Эгерде сиз PIC микроконтроллеринин долбоорлоруна кызыксаңыз, www.boomerrules.wordpress.com менин веб -сайтымды текшериңиз

Сунушталууда: