Stap 4: Test de PCB en toevoegen op uw domeincontroller
Na de PCB te kijken en doen wat testen, ontdekte ik de volgende pin-info:
pin 2 - grond
pin 6,7 - besturingselementen de linker motor h-brug
pin 10,11 - besturingselementen de juiste motor h-brug
pin 13 - Vcc output van de batterij.
Ik veronderstel de andere pinnen zijn huishouden en het krijgen van de input van de componenten van de ontvanger. Terwijl met een draadloze inbreng in de PCB misschien wel handig om iets in de toekomst, nu ben ik geïnteresseerd in de h-bruggen en hoe u hen controleren.
De h-brug voor elke zijde is gemaakt van 4 macht transistors en 2 reguliere transistoren. Op mijn PCB bestuurd de macht transistors waar een paar H8050 en H8550, door een aantal reguliere transistors, C945s. Allemaal in het TO-92 fysieke pakket. Ik vermoed dat andere transistoren kunnen worden gebruikt op andere PCB's, het was een kwestie van wie wat in voorraad op een goedkope prijs die dag had. Ik vond sommige datasheets voor de H8050 en de H8550 en het lijkt alsof elke h-brug is gewaardeerd met 1,5 versterkers. Opnieuw, kunnen er verschillende onderdelen op de andere PCB's op andere Tumblers, maar de fundamentele 1.5a beoordeling moet blijven hetzelfde.
Voor elke h-brug is er een paar pinnen die het bepaalt. Pin #6 en #7 voor de linker kant, en #10 en #11 voor de rechterkant.
Linker wiel:
Pin 6: OFF, Pin 7: OFF - niets, geen verkeer
PIN 6: Op, Pin 7: OFF - wiel draait - voorwaartse richting
PIN 6: OFF, Pin 7: ON - wiel draait - omgekeerde richting
PIN 6: Op, Pin 7: ON - ongetest, vermoedt dat dit misschien iets in een rookwolk bak.
Juiste wiel:
Pin 10: OFF, Pin 11: OFF - niets, geen verkeer
PIN 10: Op, Pin 11: OFF - wiel draait - omgekeerde richting
PIN 10: OFF, Pin 11: ON - wiel draait - voorwaartse richting
PIN 10: Op, Pin 11: ON - ongetest, vermoedt dat dit misschien iets in een rookwolk bak.
Voor de pinnen op de "OFF" positie, N/C of grond lijken beide te werken. Op het algemene beginsel stel ik vasthouden aan de grond en niet N/C.
Wat betekent dit allemaal?
Om een bepaalde zijde van de robot, moet u twee digitale uitgangen, hopelijk PWM staat. Voor beide zijden duurt vier uitgangen. Bijvoorbeeld, als ik wilde om vooruit te gaan met 40% max snelheid zou ik mijn pinnen als volgt instellen:
pin 6: PWM-signaal op 40%
pin 7: grond (PWM 0%)
pin 10: grond (PWM 0%)
PIN 11: PWM-signaal op 40%
Ik heb met behulp van de standaard Arduino PWM-frequentie van ongeveer 500Hz en dat werkt voor het schakelen van de h-bruggen en uitschakelen prima. Ik zou niet verbaasd zijn als de onderdelen tot de 20 KHz bereik verwerkt.
Wanneer aansluiten van uw microcontroller en gebruik van een andere batterij voor de signalen van de gegevens (zoals de 9V ik gebruikte), vergeet niet om te "delen een grond" draad tussen de twee. Als je kijkt naar mijn foto's, thats waarom ik heb een draad van de pin #2 op de IC Socket in de massaplaat van mijn breadbord.
Ik gebruikte voor mijn test setup, dus de Arduino PWM-signalen:
Arduino: Tumbler
pin 9---pin 6
pin 10---pin 7
pin 3---pin 11
PIN 11---pin 10
Hier is sommige hardwired, lelijke test code. Echter, op doet werkzaamheden en bewijst het algemene idee. Het is een lus dat als volgt gaat:
beginnen met lus
Station vooruit op 50% kracht gedurende 2 seconden
wacht 2 seconden
rijden in omgekeerde volgorde op 50% kracht gedurende 2 seconden
wacht 2 seconden
loop naar boven
Het toont me dat dit niet het meest nauwkeurige motor/wiel is uitlijning die ik heb gezien, maar het werkt. Ik werk op betere wiel controlecode na verloop van tijd - moet krijgen van de laser-afstandsmeter eerst werken!
Tumbler1
door Ray wethouder
//
Verbindingen met de Tumber PCB
//
Arduino: Tumbler
pin 9---pin 6
pin 10---pin 7
pin 3---pin 11
PIN 11---pin 10
grond---pin 2 (grond)
//
//
int RightFwd = 3; PWM-uitgang naar doorsturen op recht wiel
int RightRev = 11; PWM-uitgang naar Reverse op recht wiel
int LeftFwd = 9; PWM-uitgang om vooruit te gaan op links wiel
int LeftRev = 10; PWM-uitgang naar Reverse op linker wiel
int delaytime = 2000; de wachttijd tussen de stappen
int speedval = 127; snelheid van forward en reverse, op 50% (van 255 max)
VOID Setup
{
pinMode (RightFwd, uitvoer);
digitalWrite (RightFwd, laag); Zorg ervoor dat uitvoer is initally bij lage
pinMode (RightRev, uitvoer);
digitalWrite (RightRev, laag); Zorg ervoor dat uitvoer is initally bij lage
pinMode (LeftFwd, uitvoer);
digitalWrite (LeftFwd, laag); Zorg ervoor dat uitvoer is initally bij lage
pinMode (LeftRev, uitvoer);
digitalWrite (LeftRev, laag); Zorg ervoor dat uitvoer is initally bij lage
delay(delaytime);
}
void loop
{
analogWrite (LeftRev, 0);
analogWrite (LeftFwd, speedval); Hiermee schakelt u de linker wiel in voorwaartse richting tegen de waarde van de snelheid
analogWrite (RightRev, 0);
analogWrite (RightFwd, speedval); Hiermee schakelt u het juiste wiel in voorwaartse richting tegen de waarde van de snelheid
delay(delaytime);
analogWrite (LeftFwd, 0); schakelt het linker wiel
analogWrite (RightFwd, 0); schakelt het juiste wiel
delay(delaytime);
analogWrite (LeftRev, speedval); Hiermee schakelt u de linker wiel in omgekeerde richting tegen de waarde van de snelheid
analogWrite (RightRev, speedval); Hiermee schakelt u het juiste wiel in omgekeerde richting tegen de waarde van de snelheid
delay(delaytime);
}