Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
I denna instruktionsbok kommer jag att köra en 28-BYJ-48 stegmotor, med ett UNL2003 darlington array-kort, ibland namngivet x113647, utan en mikrokontroller.
Den kommer att ha start/stopp, framåt/bakåt och hastighetskontroll.
Motorn är en enpolig stegmotor med 2048 steg per varv i fullstegsläge. Databladet för motorn finns på
De två enheterna kan köpas tillsammans från flera leverantörer. Jag fick min från kjell.com
Bing det eller googla det för att hitta en leverantör nära dig.
Jag kommer först att gå igenom några steg och delar som behövs för att få det att fungera, och sedan lägga till några steg och delar för lite mer kontroll.
Du bör varnas för att delarna som jag använder är de som jag råkar ha i min skattkista och inte nödvändigtvis de delar som är bäst lämpade för ändamålet.
Du bör också varnas för att detta är min första instruerbara och att jag är ganska ny på elektronik.
Lägg till kommentarer om du tycker att jag har gjort något som jag inte borde, eller om du har förslag på förbättringar eller förslag på bättre lämpade delar.
Steg 1: Dellista
Delarna som används för detta projekt är
- Bakbord
- Stegmotor 28byj-48
- Darlington transistor array ULN2003 -kort (x113647)
- 74HC595 skiftregister
- 74HC393 binär rippelräknare
- DS1809-100 Dallastat digital potentiometer
- 74HC241 oktalbuffert
- 3 × taktila knappar
- 3 × 10kΩ motstånd
- 2 × 0,1µF keramiska kondensatorer
- 1 × 0,01 µF keramisk kondensator
- Anslutningskablar
- 5V strömförsörjning
Steg 2: Huvuddelarna
74HC595 skiftregister
Motorn flyttas genom att upprepade gånger ge de fyra ingångsstiften på UNL2003 -kortet följande sekvens:
1100-0110-0011-1001
Detta kommer att driva motorn i det som kallas fullstegsläge. Mönstret 1100 flyttas upprepade gånger åt höger. Detta föreslår ett skiftregister. Hur ett skiftregister fungerar är vid varje klockcykel att bitarna i registret skiftar en plats till höger och ersätter den bit längst till vänster med värdet på inmatningsstiftet vid den tiden. Därför bör den matas med två klockcykler på 1 och sedan två klockcykler på 0 för att generera mönstret för dykning av motorn.
För att generera klocksignalerna behövs en oscillator som genererar en stadig serie pulser, företrädesvis en ren fyrkantvåg. Detta kommer att utgöra basen för den skiftande patten av signaler till motorn.
För att generera "två cykler med en och sedan två cykler med 0" används vippor.
Jag har ett 74HC595 skiftregister. Detta är ett mycket populärt chip, som beskrivs i många Instructables och Youtube -videor.
Databladet finns på
En trevlig instruerbar är 74HC595-Shift-Register-Demistified av bweaver6, 74HC595 -skiftregistret fungerar så att vid varje klockcykel flyttas data i dess 8 -bitarsregister åt höger och ändras värdet på ingångsstiftet längst till vänster. Därför bör den matas med två klockcykler på 1 och sedan två klockcykler med 0.
Data flyttas vid klockpulsens stigande kant. Henc vippan ska växla vid klockans fallande kant, så 74HC595 kommer att ha stabil datainmatning vid den stigande klockkanten.
74HC595 in kan kopplas så här:
Stift 8 (GND) -> GND
Pin 16 (VCC) -> 5V Pin 14 (SER) -> Data i Pin 12 (RCLK) -> Clock input Pin 11 (SRCLK) -> Clock input Pin 13 (OE) -> GND Pin 10 (SRCRL) -> 5V Pins 15 och 1-3 kommer att mata ut mönstret för att driva motorn.
Anslutning av RCLK och SRCLK säkerställer att chipdataregistret alltid är synkroniserat med utdataregistret. Att sätta stift 13 till marken gör innehållet i utmatningsregistret omedelbart synligt för utgångsstiften (Q0 - Q7).
555 -timern
För att generera klockpulsen kan 555 -timerchipet användas. Detta är också ett mycket populärt chip, och är ännu mer beskrivet och diskuterat än skiftregistret. Wikipedia har en bra artikel på
Databladet finns här:
Detta chip kan bland annat generera fyrkantvågs klockpuls. Externa motstånd och kondensatorer används för att styra frekvensen och driftscykeln (on-fraction).
När det är inställt för att upprepade gånger generera pulser sägs 555 -chipet vara i astabilt läge. Detta görs genom att koppla in det som på bilden ovan. (bild av jjbeard [Public domain], via Wikimedia Commons):
Pin 1 -> GND
Pin 2 -> R1 (10kΩ) -> Pin 7 Pin 2 -> Pin 6 Pin 3 är output Pin 4 (reset) -> 5V Pin 5 -> 0.01µF -> GND Pin 6 -> 0.1µF -> GND Pin 7 -> R2 (10kΩ) -> 5V Pin 8 -> 5V
Utgången från Pin 3 kommer att anslutas till ingångsklockans stift (Pin 11 och Pin 12) i 74HC595 skiftregistret.
Frekvensen för utsignalen (och därmed stegmotorns hastighet) bestäms av värdena på motståndet R1 och R2 och värdet på kondensatorn C.
Cykeltiden T kommer att vara ln (2) C (R1 + 2 R2) eller ungefär 0,7 C (R1 + 2 R2). Frekvensen är 1/T.
Driftscykeln, den bråkdel av cykeltiden som signalen är hög, är (R1 + R2) / (R1 + 2R2). Driftscykeln är inte särskilt viktig för detta projekt.
Jag använder 10kΩ, för både R1 och R2, och C = 0.1µF.
Detta ger en frekvens på cirka 480Hz, och är nära den maximala frekvensen jag fann att stegmotorn klarar utan att stanna.
För att generera det 1100 skiftade, upprepade mönstret från 74HC595 bör stift 14 (SER) hållas högt under två klockcykler och sedan lågt i två klockcykler upprepade gånger. Det vill säga stiftet ska svänga med halva klockfrekvensen.
74HC393 dubbel binär rippelräknare
74HC393 -räkningen i binär, och det betyder också att den kan användas för att dividera pulsfrekvenser med effekter på två, Databladet finns här:
74HC393 är dubbel, den har en 4 bitars räknare på varje sida.
Vid klockpulsens fallande kant växlar den första utgångsstiften till och från. Därför kommer utgångsstift ett att pendla med halva frekvensen av ingångsklockan. Vid fallande kanten av utgångsstift ett, växlar utgångsstift två till och från. Och så vidare för alla fyra utgångsstiften. När stift n stängs av växlar stift n+1.
Pin n+1 ändras hälften så ofta som pin n. Detta är binär räkning. Räknaren kan räkna till 15 (alla fyra bitarna 1) innan den börjar på noll igen. Om räknarens 1 sista utgångsstift är anslutet som en klocka till räknare 2 kan det räkna till 255 (8 bitar).
För att skapa en puls med halva frekvensen av ingångsklockan behövs bara utgångsstift 1. Det vill säga bara att räkna från noll till en.
Så, om räkningen sker med klockpulsen från 555, kommer stiftet på 74HC393 -räknaren som representerar bit 2 att pendla med halva klockfrekvensen. Därför kan detta anslutas till SER -stiftet i 74HC595 -skiftregistret för att få detta att generera det önskade mönstret.
Ledningarna för den binära räknaren 74HC393 bör vara:
Pin 1 (1CLK) -> 74HC595 Pin 11, 12 och 555 Pin 3
Pin 2 (1CLR) -> GND Pin 4 (1QB) -> 74HC595 Pin 14 Pin 7 (GND) -> GND Pin 14 (VCC) -> 5V Pin 13 (2CLK) -> GND (används inte) Pin 12 (2CLR)) -> 5V (används inte)
Steg 3: Få det att köra
Vi kan nu få motorn att gå, om stiften 0-3 på 74HC595 är anslutna till stiften 1-4 på ULN2003-kortet.
För nu, byt ut 0,1 µF kondensatorn vid stift 6 på 555 -timern med en 10 µF. Detta kommer att göra klockcykeln hundra gånger längre, och man kommer att kunna se vad som händer.
Lysdioderna på ULN2003 -korten kan användas för detta. Koppla bort motorn från ULN2003 -kortet. Anslut stiften 1 till 4 på kortet till utgången QA-QD (stift 7, 9, 10 och 11) på 74HC595. Anslut - och + på ULN2003 -kortet till marken och 5V. Om strömmen slås på bör du se det önskade mönstret på lysdioderna.
Om du vill se vad som händer i den binära räknaren 74HC393, anslut till stiften 3-6 på den i stället.
Om mönstret verkar stänga av, byt ut kondensatorn mot 0,1 µF igen, anslut ingångsstiften 1 - 4 på ULN2003 -kortet till utgångsstiften QA - QD på 74HC595 och anslut sedan motorn igen.
Med strömmen på bör motorn nu gå.
Steg 4: Hastighetskontroll
Stegmotorns hastighet styrs av frekvensen för utmatningen från 555 -timern. Detta styrs återigen av värdena för motstånden R1 och R2 och kondensatorn Cl ansluten till den. Genom att ansluta en 100kΩ potentiometer i serie med R2 kan frekvensen ligga mellan 480Hz och 63Hz. Stegen pr. andra av motorn, blir hälften av 555 -timerfrekvensen.
Jag använde en DS1809-100 digital potentiometer, som är gjord för knapptryckning. Tryckknappar som ansluter stift 2 (UC) och stift 7 (likström) till 5V gör att motståndet ökar/minskar mellan RH (stift 1) eller RL (stift 4) -kontakterna och torkarstiftet 6 (RW). Om du håller en knapp intryckt i mer än en sekund blir knappen automatisk upprepad.
Databladet finns här:
Ledningarna är så här:
Pin 1 (RH) oanvänd
Pin 2 (UC) -> taktil knapp 1 Pin 3 (STR) -> GND Pin 4 (RL) -> 555 Pin 2 Pin 5 -> GND Pin 6 (RW) -> 10kΩ -> 555 pin 7 Pin 7 (DC) -> taktil knapp 2 Pin 8 -> 5V
Ledningarna för taktil knapp 1:
Stift 1/2 -> DS1809 Stift 2
Stift 3/4 -> 5V
Kablarna för taktil knapp 2:
Stift 1/2 -> DS1809 Stift 7
Stift 3/4 -> 5V
Nu kan hastigheten regleras.
Steg 5: Start / Stopp
För att starta och stoppa stegmotorn kan stift 4 (återställningsstiftet) på 555 -timern användas. Om detta dras lågt kommer det inga utgångspulser från stift 3.
En taktil knapp används för att växla mellan start och stopp. Om du trycker på knappen en gång ska motorn startas, och sedan trycka på den igen ska den stoppas. För att få detta beteende krävs en flip-flop. Men 74HC393 som redan finns kan också användas. 74HC393 har två delar, och endast ena halvan används som frekvensdelare för klockpulsen.
Eftersom den binära räknaren egentligen bara är en uppsättning växlande flip-flops i serie kan den första flip-floppen för den andra delen användas. Genom att ansluta en känslig knapp så att Pin 13 (2CLK) är låg när knappen trycks in, och hög om den inte är det, kommer Pin 12 att växla på varje low. Anslutning av stift 12 till stift 4 på 555 startar och stoppar dess utmatning, och därmed motorn.
Taktila knappar är lite knepiga, eftersom de är mekaniska. De kan "studsa", det vill säga att de kan skicka flera signaler för varje tryckning. Att ansluta en 0,1 µF kondensator över knappen hjälper till att undvika detta.
Så en taktil knapp (knapp 3 läggs till och anslutningen till Pin 4 på 555 ändras.
Koppling av knappen:
Stift 1/2 -> 10kΩ -> 5V
Pin 1/2 -> 0.1µF -> Pin Pin 3/4 -> 74HC393 Pin 13 (2CLK)
Följande ändringar görs på 555:
Pin 4 (Återställ) -> 74HC393 Pin 11 (2QA)
Knapp 3 ska nu fungera som start/stopp -växling.
Observera att en motor stannade på detta sätt, kommer fortfarande att förbruka ström.
Steg 6: Riktningskontroll
För att styra motorns riktning behövs ytterligare en tryckknapp och sedan ytterligare en vippa. Men jag kommer att fuska med nästa flip-flop på 74HC393, efter på/av-flip-floppen och på/av-knappen.
När riktningsstiftet (Pin 2QA) går lågt växlas nästa pin (Pin 2QB). Därför upprepade gånger att trycka på tryckknappen kommer att resultera i AV - PÅ FRAMÅT - AV - PÅ BAKVÄRD - AV - PÅ FRAMÅT etc.
För att få motorn att gå bakåt bör mönstret som matas till ULN2003 vändas. Det kan göras med ett dubbelriktat skiftregister, men jag har inte ett. 74HC595 är inte dubbelriktad.
Jag fann dock att jag kunde använda min 74HC241 -oktalbuffert. Denna buffert har två 4 -bitars delar, med separata OE -stift (utgångsaktivering). Den första OE -stiften styr de fyra första utgångsstiften och den andra de fyra sista utgångsstiften. När OE är på utgångsstiften har samma värde som motsvarande ingångsstiften, och när den är avstängd kommer utgångsstiften att ha ett högt impedansläge, som om de inte var anslutna. Vidare är en av OE -stiften aktiv låg, och den andra är aktiv hög, så när du kopplar ihop dem är bara hälften av bufferten aktiv vid den tiden.
Så för samma ingång kan ena halvan av bufferten driva motorn framåt och den andra halvan bakåt. Vilken hälft som är aktiv beror på värdet på OE -stiften.
Databladet för 74HC241 finns på
Ledningarna kan vara så här:
Pin 1 (1OE) -> 74HC293 Pin 10 (2QB)
Pin 2 (1A1) -> 74HC595 Pin 15 Pin 3 (1Y4) -> ULN2003 Pin 1 Pin 4 (1A2) -> 74HC595 Pin 1 Pin 5 (1Y3) -> ULN2003 Pin 2 Pin 6 (1A3) -> 74HC595 Pin 2 Pin 7 (1Y2) -> ULN2003 Pin 3 Pin 8 (1A4) -> 74HC595 Pin 3 Pin 9 (1Y1) -> ULN2003 Pin 4 Pin 10 (GND) -> Ground Pin 11 (2A1) -> Pin 2 (1A1) Pin 12 (1Y4) -> Pin 9 (2Y1) Pin 13 (2A2) -> Pin 4 (1A2) Pin 14 (1Y3) -> Pin 7 (2Y2) Pin 15 (2A3) -> Pin 6 (1A3) Pin 16 (1Y2) -> Pin 5 (2Y3) Pin 17 (2A3) -> Pin 8 (1A4) Pin 18 (1Y2) -> Pin 3 (2Y4) Pin 19 (2OE) -> Pin 1 (1OE) Pin 20 (VCC) -> 5V
Nu bör kablarna slutföras bara genom att slå på med 5V. Se till att strömförsörjningen kan leverera tillräckligt med ström för att driva både motorn och kretsarna.
Steg 7: Slutsatser
Stegmotorn kan styras utan mikrokontroller.
IC: erna som används här var några som jag hade från tidigare. De flesta av dem är inte optimala för detta, och flera alternativ kan användas.
- För att generera pulserna är 555 -timerchipet en bra chice, men det finns flera alternativ, t.ex. det som beskrivs i denna instruktionsbok.
- För varvtalsreglering kan vilken potentiometer som helst användas, inte bara en digital. Om du har en 10kΩ potentiometer, snarare än en 100kΩ, kan 10kΩ motstånden ersättas med 1KΩ, och 0,1 µF kondensatorn med en 1µF kondensator (dela alla motstånd och multiplicera kondensatorn med samma nummer för att behålla timingen).
- Med hjälp av ett dubbelriktat skiftregister, t.ex. 74HC194 skulle göra riktningskontrollen enklare.
- För knappstyrning kan 74HC393 ersättas med en flip-flop, t.ex. 74HC73. 555 kan också vara ansluten för att fungera som växel.