5 Schritt:Schritt 1: Was Sie benötigen Schritt 2: Schaltschema Schritt 3: 1523 Zeilen Code an der Wand ... Schritt 4: Puh ... nur 94 Zeilen dieses Mal Schritt 5: Ein paar Anmerkungen ...

    Lernziel: Eine Einführung in die Grund analogen Schaltungen durch physikalische Schnittstelle und graphische Darstellung. Superscope ist ein Schaltungssimulator App zur Darstellung und Berechnung von analogen Schaltungen. Was ist so cool zu Superscope ist die Möglichkeit, Schaltungskomponenten (via Arduino Serial) in das Programm, wo man physisch zu manipulieren ihnen tatsächlich importieren. Arduino Tests für den Wert der Komponente (einem Kondensator, Induktor, ein Widerstand oder Wellenform der bestimmten Frequenz), dann sendet die Daten zur Verarbeitung. Importierten Komponenten können dann in Schaltpläne gesteckt werden. Superscope baut auf die Mission der Arduino, der Schnittstelle zwischen Hardware und Software, analog und digital. Superscope stellt dem Benutzer drei grafische Darstellungen der Schaltung. Die erste ist die Grundfrequenzbereichsgrundstück; Grafik-Spannung über der Frequenz. Das zweite ist das Vektordiagramm; Darstellung der Phase und der Größe des Ausgangssignals. Die dritte ist eine Zeiger; ein dynamisches, analytische Darstellung Phase und Größe in Bezug auf den Eingang der Ausgang ein. Lassen Sie uns auf das, was Sie für dieses Projekt benötigen loszulegen. Schritt 1: Was Sie benötigen Alle 7 Artikel anzeigen * Arduino - verfügbar @ Radio Shack [Catalog #: 276-128 http://www.radioshack.com/product/index.jsp?productId=12268262] * Widerstände - verfügbar @ Radio Shack [Catalog #: 271-003 http://www.radioshack.com/product/index.jsp?productId=2994585] * Kondensatoren - verfügbar @ Radio Shack [Catalog #: 272-802 http://www.radioshack.com/product/index.jsp?productId=2062376] * Induktive Bauelemente (Drosseln, Ferrit-Drosseln, Motoren, Transformatoren) - verfügbar @ Radio Shack [Catalog #: 273-102 http://www.radioshack.com/product/index.jsp?productId=2103978] * SolderlessBreadBoard - verfügbar @ Radio Shack [Catalog #: 276-098 http://www.radioshack.com/product/index.jsp?productId=12165713] * LM339 Komparator (wahrscheinlich mein absoluter Favorit IC) - verfügbar @ Radio Shack [Catalog #: 276-1712 http://www.radioshack.com/product/index.jsp?productId=2062593] * 555 Timer (ich empfehle die TLC555) - verfügbar @ Radio Shack [Catalog #: 276-1718 http://www.radioshack.com/product/index.jsp?productId=2062595] Schritt 2: Schaltschema Verdrahten Sie es so. Wenn Sie einen Operationsverstärker anstelle des LM339 Komparator müssen Sie möglicherweise die in der in der schematischen dargestellten positiven Rückkopplungsschleife hinzuzufügen. Die Komponente, die Sie testen eine Verbindung zu dem zwei offene circles.Step 3: 1523 Zeilen Code an der Wand ... Die Verarbeitung Code: Der Code ist so groß, dass instructables lässt mich nicht laden Sie sie als Text: p Eine Textdatei, und die Verarbeitung app-Datei sind beigefügt. Schritt 4: Puh ... nur 94 Zeilen dieses Mal // Das Arduino-Code: /////////////////////////////// #include <math.h> Byte chargePin = 9; Byte triggerPin = 8; Byte noninvertingPin = A0; Byte invertingPin = A1; schweben constRes = 100; unsigned long timeStart; unsigned long TimeEnd; unsigned long Timedelta; unsigned long-Kapazität; unsigned long Induktivität; unsigned long Beständigkeit; unsigned long Frequenz; String str; char c; Leere Setup () { Serial.begin (9600); pinMode (chargePin, OUTPUT); pinMode (triggerPin, INPUT); pinMode (noninvertingPin, INPUT); pinMode (invertingPin, INPUT); str = ""; c = '\ n'; } Leere Schleife () { while ((Serial.available ()> 0)) { c = Serial.read (); if (! (c == '\ n')) { str + = c; } else { if (str == "requestFarads") { testCapacitance (); Serial.println (Kapazität); } else if (str == "requestHenrys") { testInductance (); Serial.println (Induktivität); } else if (str == "requestOhms") { testResistance (); Serial.println (Widerstand); } else if (str == "requestHertz") { testFrequency (); Serial.println (Frequenz); } str = ""; while (Serial.available ()> 0) Serial.read (); } } digital (chargePin, LOW); } Leere testCapacitance () { digital (chargePin, LOW); while (analogRead (noninvertingPin)> 1) {} timeStart = micros (); digital (chargePin, HIGH); während {if ((micros () - timeStart)> 5000000) break;} (digitalRead (triggerPin)!) TimeEnd = micros (); Timedelta = TimeEnd-timeStart; // Kapazität in Nanofarad Kapazität = (-1*((timeDelta*1000)/((log((1000000-(1000000*analogRead(invertingPin)/1024)))-log(1000000))*constRes))); } Leere testInductance () { digital (chargePin, LOW); while (analogRead (noninvertingPin)> 1) {} timeStart = micros (); digital (chargePin, HIGH); while (digitalRead (triggerPin)) {if ((micros () - timeStart)> 5000000) break;} TimeEnd = micros (); Timedelta = TimeEnd-timeStart; // Induktivität im Nanohenry Induktivität = (-1 * ((1000 * * Timedelta constRes) / (log (1000000 * analogRead (invertingPin) / 1024) -log (1000000)))); } Leere testResistance () { digital (chargePin, HIGH); Verzögerung (100); Widerstand = (float (analogRead (noninvertingPin)) * 100) / (1024-Schwimmer (analogRead (noninvertingPin))); } Leere testFrequency () { Frequenz = pulseIn (triggerPin, HIGH); Frequenz + = pulseIn (triggerPin, LOW); Frequenz = 1 / Frequenz; } Schritt 5: Ein paar Anmerkungen ... Derzeit gibt es nur zwei Schaltungen für den Einsatz in der App zur Verfügung. Ich möchte danken http://www.hawkee.com/, http://www.radioshack.com/ und http://www.falstad.com/circuit/ für ihre Hilfe und Ressourcen. Sie sind frei, den Code disect eine hinzufügen, um es, wenn Sie (nur nicht vergessen zu erwähnen, wo Sie es bekommen) möchten. Ein immeasureable Menge an Zeit und Arbeit ging in diesem Projekt. Bitte stimmen Sie für dieses i'ble in der Arduino-Wettbewerb! Auch überprüfen Sie heraus meinen YouTube Channel für mehr awesome Elektronik Projekte wie ein 360kV Marx-Generator! http://www.youtube.com/user/inductivecapacitor/feed$(function() {$("a.lightbox").lightBox();});

    Seiten: