Stap 2: elektronica
De interfaces van de microcontroller aan de H-brug, die op zijn beurt de motor onder controle.
Ik gebruikte de brug A van het L298N dubbele full-bridge-stuurprogramma (http://www.digikey.com/product-detail/en/L298N/497-1395-5-ND/585918?WT.z_cid=ref_octopart_dkc_buynow).
Het omvat een pin, ENABLE A, die toen laag is, dat de motor wordt uitgeschakeld.
U stelt hoge/lage INPUT 1/INPUT 2 voorbereiden met de klok mee draaien. en laag/hoog voor counter met de klok mee. De knop is gekoppeld aan een pull-up weerstand en geaard wanneer gedrukt. Instelling inschakelen een hoge de motor lopen krijgt, op zoek naar avontuur.
Een PIC16F88 microcontroller werd gebruikt, maar de meeste andere even zou doen.
Afgebeeld is de vereenvoudigde schema. Software is geschreven in JAL die in zijn geheel volgt...
--Dit programma is voor het beheersen van de cyclo sprak threading machine
--voor de semi-automatische sprak threading machine project op instructables
--door Carlitos
--B2 is input knop gebonden aan pullup weerstand. Knop wordt gebruikt is normaal gesproken op
--zo normaal het vliegverbod is opgelegd. Knop zorgt ervoor dat input te hoog gaan.
--die zal leiden tot motorische controle cyclus
--B4 is motor inschakelen (hoge is ingeschakeld)
--B6, B7 is motor richting waar hoog/laag is met de klok mee en laag/hoog tegen de klok in
--motorische controle cyclus:
-- 1. inschakelen motor met de klok mee uitvoeren
-- 2. draaien met de klok mee voor xseconden
-- 3. Run linksom voor x + delta seconds
-- 4. uitschakelen van de motor
omvatten 16f88
--Alle IO instellen als digitale
enable_digital_io()
Pragma doel klok 8_000_000
Pragma doel OSC INTOSC_NOCLKOUT
OSCCON_IRCF = 0b_111
Pragma doel WDT uitgeschakeld
--Output pinnen
pin_b4_direction = output--motor inschakelen
pin_b6_direction = output--motor i1
pin_b7_direction = output--motor i2
--Input pinnen
pin_b2_direction = input--knop met pullup weerstand gebruikt voor het starten van de motor
omvatten vertraging
var woord delayclockwise = 90
var woord delaycounterclockwise = 100
pin_b4 = laag--disable-motor
pin_b6 = hoog--ingesteld voor de klok
pin_b7 = laag--ingesteld voor de klok
voor eeuwig lus
Als pin_b2 == hoog dan--knop ingedrukt
delay_100ms(5)
pin_b4 = hoog--inschakelen motor
delay_100ms(delayclockwise)
pin_b4 = laag--disable-motor
pin_b6 = laag--instellen voor tegen de klok in
pin_b7 = hoog--instellen voor tegen de klok in
pin_b4 = hoog--inschakelen motor
delay_100ms(delaycounterclockwise)
pin_b4 = laag--disable-motor
pin_b6 = hoog--ingesteld voor de klok
pin_b7 = laag--ingesteld voor de klok
eind als
delay_100ms(1)--wachten een beetje voordat polling knop
einde lus