Testprogramm: Pin-Strip richtig angelötet?

In diesem Artikel beschreibe ich eine einfache Methode um zu testen, ob alle Pins des Espruino Microcontrollers korrekt verlötet sind. Dies erleichtert später das Debuggen, da man ausschließen kann, dass der Fehler an einer falschen Lötstelle liegt.

Erklärung

Um den Espruino schneller verkabeln zu können und trotzdem eine feste und zuverlässige Verbindung zu haben, bietet es sich an, die 20 Pins jede Seite des Microcontrollers mit einem Pin-Strip zu verlöten. Damit ist es dann problemlos möglich, mit male-to-female Jumper Wires einen Servo u.v.m. mit dem Espruino direkt zu verdrahten. Dies erhöht die Übersichtlichkeit und man spart Platz auf dem Breadboard. Wie das verlöten funktioniert hat Gordon Williams in einem Video anschaulich erklärt. Ich zeige euch hier, wie man prüfen kann, dass das Verlöten mit dem Lötkolben korrekt funktioniert hat.

Schaltungsaufbau

Pin testen Espruino

Verbindungsübersicht

Servo Kabel Espruino
schwarz GND
rot Bat
gelb B13 (und andere Pins)

Programmcode

Das Programm steuert nun alle Pins (außer: GND, Bat, 3.3 und die LED-Pins: A13, A14 und A15) an und sendet einen Puls, der einen Servo in Bewegung setzt. Der Daten-Anschluss (gelbes Kabel im Schaltungsbild) wird nun auf jede der geschaltenen Pins gesteckt. Bewegt sich der Servo, ist die Verlötung korrekt erfolgt. Andernfalls muss an der entsprechenden Pin nachgebessert werden.

//PIN Test
var servoPos = [0];
//aktuelle Position des Servos
function getPositions() {
 var t = getTime();
 servoPos = [ 0.5+Math.sin(t)*0.5];
}
//Servo bewegen
function moveServos() {
 digitalPulse(A0,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(A1,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C0,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C1,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C2,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C3,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C12,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C15,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B12,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B9,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B8,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B7,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B6,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B5,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B4,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B3,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B2,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(A10,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(A9,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(A8,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C11,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C10,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C9,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C8,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C7,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C6,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C5,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(C4,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B15,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B14,1,1+E.clip(servoPos[0],0,1));
 digitalPulse(B13,1,1+E.clip(servoPos[0],0,1));
}
setInterval("getPositions();moveServos()", 50);

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert