Arduino klo maskin (4 / 12 steg)
Steg 4: Elektronik + kretsar
Scheman är bra, men inte alla kan läsa dem. Jag valde för att göra ett diagram med Fritzing. Detta bidrar också till att se den stora bilden. Här är modet i maskinen.
Låt oss dela banan upp bitar.
Först tråd stegmotorer. Observera att Y-axeln har två motorer på vardera sidan, de är fast spegel till varandra så den unipolar motorer flytta tillsammans.
- Lägg till drivatransistorerna. I verkligheten jag använde TIP120s inte ULN2803s, men schematically det är alla lika.
- Wire servomotor, Gränslägesbrytare, statuslampornas, mynt trigger switch och makt att steppers.
- Tråd stepper transistor TTL till Arduino.
- Ansluta LCD (med LCD visar spelet instruktioner är valfri, men trevligt)
- Wire uppspelningskontroller. Detta är vad de spelare gränssnitt att styra gantry och klo. Kom ihåg jordluckraren är med en potentiometer, men du kan enkelt att göra den en knapp istället.
Pro Tips:
Jag hade några hinder att övervinna om stegmotor och servomotorer. De är alltid på, vilket innebär att när inte i rörelse, de har hålla vridmoment eller nuvarande pumpa in i motorn att hålla dem på plats. Detta sprider värme i ULN2803 drivrutinerna (transistor matriser som driver stegmotorer) och tyvärr dessa DIP paket skär inte ut för att skingra den typen av värme (även när bara kör steppers på 5v). För att åtgärda detta, skriver jag bara alla stiften låg när motorerna är inaktiv. Detta minskar på värme oerhört. Vi kan komma undan med detta eftersom vi inte sysslar med att förlora motor position. Eftersom utlastningsanordningen driver rörelse i ett rack/pinion metod, finns det inget behov för att hålla vridmoment som alla lastning kraft överförs vinkelrät till riktningen av vinkar (eller sido på motoraxeln). Till skillnad från en CNC-maskin finns det ingen kick-back kraft som skulle orsaka en motor att förlora position, inte heller någon sjuk effekt om en position är förlorad. Klo maskin motorerna har därför ingen hållvridmoment som skär ned på kraft/värme och standard motorerna i ett viloläge. Win/win. Detta var i början, inte för att jag väntat värme i ULN2803 att vara ett problem, men jag ville kunna skala utlastningsanordningen till en större och större maskin. Med stepper motors båda hålla sin ställning medan striderna allvar med en tyngre gantry skulle vara ett säkert sätt att misslyckas tidigt. Jag byggde klo maskin version 1.0 med ULN2803s, men jag senare insåg TIP120s var rätt väg att gå. Version 2.0 byggdes med TIP120 Darling Transistor matriser (16 totalt). Dessa TIP120s kan hantera 3A kontinuerligt och upp till 5A topp. De är mycket mer robust att hantera aktuella, och med dessa, maskinen kan skala större, hantering mer makt (12v) och större laster. Jag sluta göra en anpassad PCB för dessa transistorer. Väl värt det om du befinner dig bygga mer än en klo maskin, gör det bara också ledningar så mycket renare och organiserade inuti maskinen. Servomotor (motor som driver klo) hade också samma beteende. Power drivs alltid in i servo för att rymma den klo positionen. Detta är ett problem när spelet är i idle (inte som spelas) som servo motor värmer upp avsevärt och minskar dess liv utrymme. Jag tittade överallt och trots varje anspråk på att säga det kommer att fungera, kan du helt enkelt anropa funktionen "servo.detach(pin#) i Arduino. Detta skulle teoretiskt lösgöra kommunikationssignal till servo, men de flesta servon är inte avsedda att uppleva en "null" kommunikation. Det är en odefinierad stat. Onödigt att säga fungerar kommandot "loss" inte. Sättet runt detta var att bara ansluta servo kraftledningen till en transistor och stänga av (med logik) när klo spelet är inte i leken. Används en TIP120 för detta.
TL DR: Använd TIP120s att hantera stegmotor nuvarande, och inaktivera håll vridmoment och servo kraften när spelet är i viloläge att skära ner på och värme användning.