7 Schritt:Schritt 1: Was Sie brauchen Schritt 2: Erstellen der Fall Teil 1 Schritt 3: Erstellen der Fall Teil 2 Schritt 4: Electronics Schritt 5: Code Schritt 6: Vorbereiten der Heizplatte Schritt 7: Montage der Kochplatte

    Heizung Dinge ist eine der durchgeführten Aufgaben im Labor. Eine ganze Menge Zeit ist es nicht genug, um einfach zu halten etwas bei einer bestimmten Temperatur, aber die Geschwindigkeit, mit der etwas erwärmt wird und für wie lange, ist genauso wichtig. Vor allem, wenn Sie versuchen, Katalysatoren für chemische Prozesse zu entwickeln, ist die Temperatur-Programm und genaue Temperaturregelung von entscheidender Bedeutung und werden Sie wahrscheinlich nicht wollen, um im Labor 16 Stunden bleiben, um Ihre Temperaturprogramm manuell anpassen. Leider programmierbare Temperaturregler, die Prozesse zu automatisieren können, sind sehr teuer. Also beschloss ich, eine hochgradig anpassbare Steuerung, die in der Lage, Temperaturrampen laufen und lesen Sie mehrere verschiedene Temperaturprogramme von einer SD-Karte zu bauen. Es bietet auch eine Logging-Funktion auf der SD-Karte, die Sie, um die resultierende Temperaturprofil nach Ausführung eines Programms zu bewerten erlaubt. Es ist ein großer Hack für Heizgeräte, da es leicht zu fast jeder Heizvorrichtung Sie, so lange wie es Ihnen erlaubt, auch eine Verbindung eines Thermoelements denken können angeschlossen werden. Also, wenn Sie schon einmal über den Bau des perfekten Elektroofen gedacht haben (es gibt mehrere wirklich gute Erklärungen online) oder Heizplatte (werfen Sie einen Blick in den Schritten 6 und 7), ist jetzt Ihre Zeit. Insgesamt sollte der Controller kostet etwa 45 € und der heißen Platte ca. € 55. Sie sollten leicht in der Lage, dies als ein Wochenende Projekt zu bauen. Schritt 1: Was Sie brauchen Programmierbare Temperaturregler: Elektronik: Halbleiterrelais (5V Steuerspannung, 16 A Laststrom) LCD (zB auf Amazon.de ) SD-Karte Bord MAX 6675 Controller Board (zB auf olimex.com ) Atmega 328 Chip & Buchse 5 x 10 kOhm Widerstände 4 x 1 kOhm Widerstände 4 x 560 Ω Widerstände 1 uF-Kondensator 100 pF Kondensator 2 x 22pF Kondensator 16 MHz Quarzoszillator LM7805 5V lineare Spannungsregler Drehgeber Mechanische 110 V schaltet 10 A-Sicherung und Sicherungshalter für das Gehäuse: 4 mm Sperrholz Holzleim Laserschneider Grundierung Heiße Platte: Metallgehäuse als Unterstützung (zB ein alter Computer-Netzteil) Kleine Kunststoffgehäuse Aluminiumplatte 20x20x1 cm 2 Heizpatronen (1/4 '' oder 6 mm) (zB auf Amazon.de oder von China auf ebay.com ) Typ K Thermoelement ( 1/4 '' oder 6 mm) Stahl Gewindestange (¼ '' oder 3/8 '') und Muttern Locking Schrauben Bleikupferpaste Werkzeuge Lang (ca. 30 cm) Bohrer für die Heizpatrone und Thermoelement Tap & sterben für Sperren Schraube und Stahl Gewindestange Bohrmaschine Schritt 2: Erstellen der Fall Teil 1 Selbstverständlich können Sie verwenden keine Gehäuse Sie wollen, aber ich beschloss, Laser schneiden eine benutzerdefinierte ein. Ich lud die Dateien in diesem Schritt (die drei verschiedene Dateitypen alle über das gleiche Design. Ich wollte Ihnen nur Optionen, je nach dem Dateityp am besten für Sie bieten). Sie können in dem ersten Bild, wo jedes Stück geht sehen. Beginnen Sie mit dem Verkleben des LCD Distanzhalter an der Rückseite des vorderen Deckplatte. Während die Holzleim Sätze, befestigen Sie die Seitenteile an der Rückseite und der Oberseite. Eine Ecke Klammer ist sicherlich hilfreich, dies zu tun. Als fügen Sie die Front-Boden und Front-Oberteil. Falls Sie sich fragen, ob Holz ist eine gute Materialwahl für das Gehäuse, lassen Sie mich zu reduzieren Ihre Ängste. Seine Selbstentzündungstemperatur etwa 572 ° F [ 1 ]. Da habe ich ein Thermoschalter in die heiße Platte, die es schaltet bei 338 ° F hinzugefügt, können Sie sehr sicher, dass es sicher ist sein. Auch nach mehr als tausend Tage bei einer konstanten Temperatur von 300 ° F, Studien zeigten, dass Holz nicht selbst [zünden 2 ]. Darüber Luft kennen zu extrem guter Wärmeisolator ist. Wenn Sie planen, auf der Ausführung des Temperaturregler mit einer Vorrichtung, die erwärmt die umgebende Luft auf mehr als 500 ° F: TUN SIE NICHT! Auch wenn Sie den Aufbau einer Ofen außen nicht immer, dass hot.Step 3: Aufbau der Fall Teil 2 Da ich kein großer Fan der gebrannten Rändern die Laserschneider Blätter, beschloss ich, von ihnen durch die Schließung der Lücken mit Holz Füllstoff und Schleif sie nieder loszuwerden. Sie können das Ergebnis im ersten Bild zu sehen. Ich habe eine dreieckig geformte Holzleiste, um die Verbindungen zu stärken. Sie werden auch verwendet, um den Boden später zu befestigen. Schneiden Sie es, um die Ecken zu passen, wie in den Abbildungen gezeigt. Wenn Sie möchten, können Sie erstklassige und Sprühfarbe sie, aber das ist bis zu you.Step 4: Electronics Sicherheitshinweise: In diesem instructable müssen Sie einige Teile mit 110 Volt Netzspannung verkabeln und die meisten der Heizplatte ist leitendes Metall. Sofern Sie nicht 100% sicher sind, was Sie tun (und selbst dann würde ich nicht ohne eine Arbeit) ist es sehr ratsam, einen FI-Schutzschalter-Adapter oder eine Schutzkontaktsteckdose verwenden, wenn Arbeiten an und mit dem Gerät. Diese Buchsen werden sofort abgeschaltet, wenn ein die aktuelle Leckstrom vorhanden ist (zB durch Sie). Andernfalls müssen Sie warten, bis eine der Sicherungen ausgelöst, die viel mehr Macht braucht (in Deutschland Netzspannung Sicherungen knallen bei etwa 3,6 kW). GFCIs billig sind Sicherheits-Features, die ich fordere jedermann zu bedienen. Sie können sie zB auf kaufen Amazon.de . Da ich über die Verwendung Heizleistung up Planung bis 1 kW, ist die Hauptstromversorgung durch eine 10-A-Sicherung und einem mechanischen Netzschalter mit LED-Anzeige geführt. Diese Geräte können die gesamte Steuerung und Heizkreislauf vom Netz zu trennen. Der Massedraht in die Heizpatrone Anschluss eingespeist und auf alle leitfähigen Metallteile des Gehäuses angebracht werden. Wie Sie in der Elektronikschaltplan sehen können, eine der 110 V Leitungen vom Schalter auf der Heizpatrone Stecker durch eine Halbleiterrelais und einem zweiten mechanischen Schalter geführt, während die zweite Zeile ist direkt mit der Heizpatrone Stecker verdrahtet. Wenn der Stift 6 auf der Atmega Controller auf HIGH gesetzt und die zweite mechanische Schalter eingeschaltet ist, wird der Lastkreis geschlossen und betreibt die Heizpatronen. Die zweite mechanische Schalter enthält auch eine LED-Anzeige, die die Heizimpulse visualisiert. Die Niederspannungsversorgung für die Steuerschaltung ist durch einen kleinen Drucktransformator, 12 V AC, die anschließend in einen Vierdiodenbrückengleichrichter und einem LM7805 linearen Spannungsregler gespeist erzeugt erzeugt. Zur Messung der Temperatur, verwenden wir ein K-Typ-Thermoelement und MAX6675 Controller Board ( MOD-TC ). Der MAX6675-Chip verfügt über einen internen 12-Bit-AD-Wandler und kann über eine serielle Schnittstelle angeschlossen werden. Die LCD (SainSmart IIC / I2C / TWI Serien 2004 20x4 LCD Module Schild), ist mit der Atmega die I2C-Anschluss und SD-Card-Schnittstellenkarte wird mit der SPI-Schnittstelle verdrahtet verbunden. Für die Navigation und Einstellung der Parameter verwenden wir einen Drehgeber mit integrierter Drucktaste. Die Heizplatte enthält auch einen Thermoschalter, der mechanisch trennt die Heizpatronen, wenn die Temperatur über 190 ° C.Step 5: Code Sie können den Code in den angehängten Dateien zu finden. I umgesetzt folgende externe Bibliotheken: PID-Bibliothek Bounce-Bibliothek Drehgeber I2C LC Display MAX6675 HINWEIS: In "MAX6675.h" Sie Linie 11 zu ersetzen (#include "WProgram.h") mit #if defined (ARDUINO) && ARDUINO> = 100 #include "Arduino.h" #else #include "WProgram.h" #endif um es auf Arduino 1.05 laufen Verwenden Sie die "Liquidcrystal" Bibliothek im Unterordner 2004-1,0 Code, ignorieren "LiquidCrystal_I2C". Wenn eine Temperatur manuell eingestellt wird oder ein Programm aus der SD-Karte startet die Steuerung Ablesen der Temperatur je 0,1 Sekunden und berechnet den nächsten Heizung Pulslänge mit PID-Bibliothek. Da wir mit einer Menge von verschiedenen Bibliotheken habe ich mehr als 99,5% aller freien Flash-Speicher auf dem ATmega 328 Chip. Schlimmer noch, ich musste den Text und das Menü für die LCD-Anzeige zu verkürzen, als ich aus SRAM lief. Beim nächsten Mal würde ich wahrscheinlich mit einem ATmega 2560 oder tauschen ein paar Strings in das EEPROM. Die verschiedenen Programme müssen als durch Komma getrennte Textdateien mit Inkrementieren Dateinamen (1.txt, ... 10.txt) im Stammverzeichnis der SD-Karte gespeichert werden. Das Layout der Dateien sollte wie folgt aussehen: 1. Zeile: Titel (maximal 20 Zeichen) 2. Zeile: ersten Temperatursollwert, erste Erwärmungsrate, erste Dauer 3. Zeile: zweite Temperatur-Sollwert, der zweite Erwärmungsrate, zweite Dauer 4. Zeile ... Sie können bis zu maximal 10 Zeilen pro Datei verwenden. Es muss mit einer Leerzeile beendet werden. Ich habe eine Arduino UNO, um den folgenden Code zu dem Atmega hochladen: // Temperaturregler #include <MAX6675.h> // LCD #include <Wire.h> #include <lcd.h> #include <LiquidCrystal_I2C.h> #include <SD.h> #include <PID_v1.h> // Drehgeber #include <Encoder.h> Encoder roundEnc (2, 3); // Taster am Drehgeber #include <Bounce.h> Bounce Bounce Drucktaste = (4, 5); #define I2C_ADDR 0x3F // Definieren I2C-Adresse, wo der LCD ist #define BACKLIGHT_PIN 3 #define En_pin 2 #define Rw_pin 1 #define Rs_pin 0 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7 LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); // Temperatursensor int tCS = 7; // CS auf MAX6675 pin int tSO = 9; // SO Stift des MAX6675 int tSCK = 8; // SCK-Pin des MAX6675 int Einheiten = 1; // Einheiten temp auslesen (0 = raw, 1 = C 2 = F) int TCError = 0; // Errorflag - TC Fehler int tempVal = 0; // Ist-Temperatur // Anzeige unsigned long lastMeas = 0; // Last Temperaturmessung unsigned long lastDisp = 0; // Neue Anzeigenwechsel unsigned long lastTempDisp = 0; // Letztes Update Temperatur auf dem Display unsigned long lastlog = 0; // Last Logstate unsigned long LOGTIME = 0; int lastDispTemp = -1; int DispOn = 0; // Blink int cPosX = -1; // X-Position (Cursor) auf dem Display int cPosY = -1; // Y-Position auf dem Display Leerstring String = ""; unsigned long lastDispPrg = 0; // Zeit seit letztem Aktualisierung des Programm-Displays // Ist die Taste auf der Drehgeber gedrückt? // 0 = keine // 1 = ja // 2 = ja, für mehr als 2 Sekunden int button = 0; // Drehknopf // 0 = nicht verändert // 1 = im Uhrzeigersinn // 2 = gegen den Uhrzeigersinn int rotationState = 0; int rotationNumber = 0; int lastRotationNumber = 0; int rotationBigLeap = 0; // Wurde die rotationl Encoder bewegt mehr als ~ 20 ° int oldRotState = 0; // Programmzustand // 0: kein Programm // 1: Manuelle Sollwert // 2: Laden von SD // 3: nicht verwendet // 4: Programm läuft int progState = 0; int subProgState = 0; int lastProgState = -1; int lastSubProgState = -1; // Programme von SD-Card int progCount = 0; Byte progLnCount = 0; Byte progTSp [10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; Byte progSprr [10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; Wort progTime [10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Welche Art von Programm im Moment läuft? // - 1 = 0; // 0 = Einzelpunkt- //> 1 = SD-Card int ProgRun = -1; int runLine = -1; // Ist-Unterprogramm der SDCard unsigned long-Laufzeit = 0; // Wie lange ist der Schritt läuft bereits unsigned long Steptime = 0; // Wie viel Zeit, um die Rampe zu erhöhen unsigned long lastPuls = 0; // Last Heizung puls int minutesPast = 0; boolean SDOpen = false; int ATSP = 0; int Tsp = 120; // Sollwert ° C int MaxT = 190; // Maximal T ° C Byte SPRR = 15; // Bewerten ° C / m Byte MaxR = 20; // Maximale Ramp int TAlert = 200; // Shutown Temperatur int Tdig1 = Tsp / 100; // Digits für Tsp int Tdig2 = (Tsp 100%) / 10; int Tdig3 = Tsp% 10; int Rdig1 = SPRR / 10; // Digits für Rp int Rdig2 = SPRR% 10; // Die MAX6675 Bibliothek für unsere Chip initialisieren // Setup-Serieller Ausgang und LED Pin // MAX6675 Bibliothek stellt bereits pin-Modi für MAX6675 Chip! MAX6675 Temp (TCS, TSO, tSCK, Einheiten); // PID-Parameter Doppelsollwert, Eingang, Ausgang, PID myPID (& Input, Output &, & Setpoint, 2,5,1, DIRECT); Leere setup () { //Serial.begin(9600); lcd.begin (20,4); // Die Hintergrundbeleuchtung schalten lcd.setBacklightPin (BACKLIGHT_PIN, POSITIVE); lcd.setBacklight (HIGH); lcd.noBlink (); lcd.clear (); pinMode (10, OUTPUT); // SC-Pin SD-Card // PinMode (53, OUTPUT); // SC-Pin SD-Karte - Arduino Mega- // Digital (53, HIGH); pinMode (6, Ausgang); // Glühstiftes } Leere Schleife () { // Disable Heizung digital (6, LOW); // Benutzereingabe abrufen getButtonState (); getRotState (); // Wechselanzeige setState (); // Anzeige aktualisieren displaystate (); // Update-Temperatur // Schnellere Messung, wenn Programm läuft. In der Programmierung der LCD Lags if (progState == 4) { getTemp (); updateProgram (); Input = tempVal; Sollwert = ATSP; myPID.Compute (); heatingPuls (); if ((lastlog + 1000) <millis ()) { UpdateLog (); lastlog = millis (); } } else if ((lastMeas + 10000) <millis ()) { getTemp (); lastMeas = millis (); } if ((tempVal> TAlert) || (TCError == 1)) {stopProgram (); Verzögerung (5000); } } Leere getButtonState () { unsigned long pushTime = pushButton.duration (); pushButton.update (); // Wie lange wurde die Taste gedrückt - abbrechen? boolean geschoben = pushButton.fallingEdge (); if ((== geschoben true) && (pushTime <1500)) { button = 1; } else if ((gedrückt == true) && (pushTime> = 1500)) { button = 2; } else { button = 0; } } Leere getRotState () { // Int roataionState = 0; // Int rotationNumber = 0; - Scale 0-10 lang = tempState roundEnc.read (); if (tempState> oldRotState) { rotationState = 1; // RotationNumber = (tempState% 100) / 10; int tempRotationNumber = (tempState% 100) / 10; if (tempRotationNumber! = rotationNumber) { rotationBigLeap = 1; } rotationNumber = tempRotationNumber; if (rotationNumber <0) { rotationNumber = 10 + rotationNumber; } oldRotState = (tempState 100%); roundEnc.write (oldRotState); } else if (tempState <oldRotState) { rotationState = 2; // RotationNumber = (tempState% 100) / 10; int tempRotationNumber = (tempState% 100) / 10; if (tempRotationNumber! = rotationNumber) { rotationBigLeap = 1; } rotationNumber = tempRotationNumber; if (rotationNumber <0) { rotationNumber = 10 + rotationNumber; } oldRotState = (tempState 100%); roundEnc.write (oldRotState); } else { rotationState = 0; rotationBigLeap = 0; } } nichtig resetRotState (int digit) { // Für die Eingabe von Zahlen auf dem LCD- rotationNumber = Ziffer; // Failsave if ((rotationNumber> 10) || (rotationNumber <0)) { rotationNumber = 0; } oldRotState = digit * 10; roundEnc.write (oldRotState); } // Verarbeite Eingaben am Anzeige Leere setState () { // Rotationstate 1 = rechts // Rotationstate 2 = links // Lange drücken: Abbruch if ((progState! = 0) && (button == 2)) { stopProgram (); button = 0; zurück; } // Untermenü 0,1 if ((progState == 0) && (rotationState! = 0)) { int select = rotationNumber% 2 + 1; subProgState = auswählen; displaystate (); zurück; } // Menüeintrag wählen // Manuellen Sollwert if ((progState == 0) && (button == 1)) { if (subProgState == 1) { progState = 1; subProgState = 0; displaystate (); button = 0; zurück; } //SD-Karte if (subProgState == 2) { progState = 2; subProgState = 0; displaystate (); button = 0; zurück; } } // Submenue 0,1 - Handbetrieb if ((progState == 1) && (subProgState <4) && (rotationState == 1) && (rotationBigLeap == 1)) { subProgState = subProgState + 1; if (subProgState> 3) { subProgState = 0; } displaystate (); rotationBigLeap = 0; zurück; } if ((progState == 1) && (subProgState <4) && (rotationState == 2) && (rotationBigLeap == 1)) { subProgState = subProgState - 1; if (subProgState <0) { subProgState = 3; } displaystate (); rotationBigLeap = 0; zurück; } // Back, TSP, Rp, Starten im manuellen Modus if ((progState == 1) && (subProgState == 0) && (button == 1)) { stopProgram (); button = 0; zurück; } if ((progState == 1) && (subProgState == 1) && (button == 1)) { subProgState = 11; button = 0; zurück; } if ((progState == 1) && (subProgState == 2) && (button == 1)) { subProgState = 21; button = 0; zurück; } if ((progState == 1) && (subProgState == 3) && (button == 1)) { Starte (0); button = 0; zurück; } // 1., 2., 3. Digit T-Sollwert if ((progState == 1) && (subProgState == 11) && (button == 1)) { subProgState = 12; button = 0; zurück; } if ((progState == 1) && (subProgState == 12) && (button == 1)) { subProgState = 13; button = 0; zurück; } if ((progState == 1) && (subProgState == 13) && (button == 1)) { // Letzte Stelle subProgState = 1; Tsp = Tdig1 * 100 + Tdig2 * 10 + Tdig3; if (Tsp> MaxT) { Tsp = MaxT; } // Maximaltemperatur Tdig1 = Tsp / 100; // Digits für Tsp Tdig2 = (Tsp 100%) / 10; Tdig3 = Tsp% 10; button = 0; zurück; } // 1., 2. Digit Rampe if ((progState == 1) && (subProgState == 21) && (button == 1)) { subProgState = 22; button = 0; zurück; } if ((progState == 1) && (subProgState == 22) && (button == 1)) { // Letzte Stelle subProgState = 2; SPRR = Rdig1 * 10 + Rdig2; if (SPRR> MaxR) { SPRR = MaxR; } // Maximal / minimal Rampe if (SPRR <1) { SPRR = 1; } Rdig1 = SPRR / 10; // Digits für Rp Rdig2 = SPRR% 10; button = 0; zurück; } // Untermenü 1,1 - SD-Programm if ((progState == 2) && (subProgState <11) && (rotationState == 1) && (rotationBigLeap == 1)) { subProgState = subProgState + 1; if (subProgState> progCount) { subProgState = 1; } displaystate (); rotationBigLeap = 0; zurück; } if ((progState == 2) && (subProgState <11) && (rotationState == 2) && (rotationBigLeap == 1)) { subProgState = subProgState - 1; if (subProgState <1) { subProgState = progCount; } displaystate (); rotationBigLeap = 0; zurück; } if ((progState == 2) && (subProgState <11) && (button == 1)) { Starte (subProgState); button = 0; zurück; } } Leere stopProgram () { progState = 0; subProgState = 0; ProgRun = -1; runLine = -1; lastSubProgState = -1; lastProgState = -1; displaystate (); myPID.SetMode (MANUAL); } nichtig Starte (int RUNTYPE) { ProgRun = RUNTYPE; ATSP = tempVal; Laufzeit = millis (); runLine = 0; progState = 4; myPID.SetMode (automatisch); LOGTIME = millis (); } nichtig updateProgram () { //SD-Karte // ProgLnCount // Runline minutesPast = 1,0 * ((millis () - Laufzeit) / 60.000,0); if (ProgRun> 0) { Tsp = progTSp [runLine]; SPRR = progSprr [runLine]; // Neues Programm zu laden? if (minutesPast> = progTime [runLine]) { runLine ++; if (runLine> progLnCount) {stopProgram (); zurück; } Laufzeit = millis (); } } // Ramp Langzeitschritt = (1000,0 * 60,0) / (double) SPRR; if ((Steptime + Zeitschritt <millis ()) && (ATSP <TSP)) {ATSP ++; Steptime = millis (); } else if ((Steptime + Zeitschritt <millis ()) && (ATSP> Tsp)) {aTsp--; Steptime = millis (); } } Leere heatingPuls () { // Impuls alle 0,1 s if ((lastPuls + 100) <millis ()) { digital (6, HOCH); int dly = Ausgabe * 1; // Grenze Strom if (dly> 1000) {dly = 1000; } else if (dly <0) {dly = 0; } //Serial.println(dly); Delay (DLY); digital (6, LOW); lastPuls = millis (); } } Leere getTemp () { // Lesen Sie den Temp vom MAX6675 schweben loop_temperature [2]; for (int ii = 0; II <2; ii ++) { loop_temperature [ii] = temp.read_temp (); if (loop_temperature [ii] <0) { TCError = 1; } Verzögerung (50); } tempVal = (int) ((loop_temperature [0] + loop_temperature [1]) / 2 + 0,5); } nichtig updateTemp (boolean Kraft = false, int lastPosX = -1, int lastPosY = -1) { if (((millis ()> (lastTempDisp + 1000)) && (tempVal! = lastDispTemp)) || (Kraft == true)) { lcd.setCursor (0, 3); lcd.print ("T"); lcd.setCursor (3, 3); lcd.print (tempVal); lcd.print ((char) 223); lcd.print ("C"); lastTempDisp = millis (); lastDispTemp = tempVal; if ((lastPosX! = -1) || (lastPosY! = -1)) { lcd.setCursor (lastPosX, lastPosY); } } } nichtig fillNumber3 (int Zahl, String & dest3) { if (Anzahl <-9) {dest3 + = String (Zahl); } else if (Zahl <0) {dest3 = "0"; dest3 + = String (Zahl); } else if (Zahl <10) {dest3 = "00"; dest3 + = String (Zahl); } else if (Anzahl <100) {dest3 = "0"; dest3 + = String (Zahl); } else { dest3 = String (Zahl); } } nichtig fillNumber2 (int Zahl, String & ziel2) { if (Zahl <10) { ziel2 = "0"; ziel2 + = String (Zahl); } else { ziel2 = String (Zahl); } } nichtig printProgLine (Byte-Zahl, String & Linie) { line = (String) (Zahl); Linie + = ":"; Linie + = (String) (progTSp [Nummer]); Linie + = ","; Linie + = (String) (progSprr [Nummer]); Linie + = ","; Linie + = (String) (progTime [Nummer]); Linie + = ""; } nichtig printProcessLine (String & Linie) { String SASP; fillNumber3 (ATSP, SASP); String st; fillNumber3 (minutesPast, st); line = "TASP:"; Linie + = SASP; Linie + = (char) 223; Linie + = "C"; Linie + = "t:"; Linie + = st; } nichtig printSingleLine (String & Linie) { String STSP; String sSprr; fillNumber3 (Tsp, STSP); fillNumber2 (SPRR, sSprr); line = "Tsp:"; Linie + = STSP; Linie + = (char) 223; Linie + = "C"; Linie + = "Rp:"; Linie + = sSprr; Linie + = (char) 223; Linie + = "/ m"; } // Anzeige aktualisieren Leere displaystate () { if (progState == 0) { display0 (); } if (progState == 1) { Display1 (); } if (progState == 2) { display2 (); } if (progState == 4) { display4 (); } } Leere display0 () { if (lastProgState! = 0) { cPosX = -1; cPosY = -1; lcd.noBlink (); lcd.clear (); // geh nach Hause lcd.print ("Programm"); // Programm beendet lastProgState = 0; lastSubProgState = -1; // Zurücksetzen updateTemp (true); // Update-Temperatur } // Aktualisieren jede Sekunde if ((subProgState == 0) && (millis ()> (lastDisp + 1000)) && (DispOn == 0)) { lcd.setCursor (0, 1); // Sie auf der 2. Zeile lcd.print ("-"); lastDisp = millis (); DispOn = 1; } else if ((subProgState == 0) && (millis ()> (lastDisp + 1000))) { lcd.setCursor (0, 1); // Sie auf der 2. Zeile lcd.print (Leerstring); lastDisp = millis (); DispOn = 0; } else if ((subProgState == 1) && (lastSubProgState! = 1)) { lcd.setCursor (0, 1); lcd.print ("Setpoint"); lastSubProgState = 1; updateTemp (true); } else if ((subProgState == 2) && (lastSubProgState! = 2)) { lcd.setCursor (0, 1); lcd.print ("SDCard"); lastSubProgState = 2; updateTemp (true); } updateTemp (); } // Manuelle Soll Leere Display1 () { if (lastProgState! = 1) { cPosX = -1; cPosY = -1; lcd.noBlink (); lcd.clear (); // geh nach Hause lcd.print ("Setpoint"); lcd.setCursor (0, 1); String line; printSingleLine (Linie); lcd.print (Linie); lastProgState = 1; lastSubProgState = -1; updateTemp (true); } // 0. Zurück if ((subProgState == 0) && (lastSubProgState! = 0)) { lcd.noBlink (); lcd.setCursor (0, 2); lcd.print ("Back"); } // 1. Set Temp if ((subProgState == 1) && (lastSubProgState! = 1)) { lcd.noBlink (); lcd.setCursor (0, 1); String line; printSingleLine (Linie); lcd.print (Linie); lcd.setCursor (0, 2); lcd.print ("TSp"); lastSubProgState = 1; } // 2. Set Ramp if ((subProgState == 2) && (lastSubProgState! = 2)) { lcd.noBlink (); lcd.setCursor (0, 1); String line; printSingleLine (Linie); lcd.print (Linie); lcd.setCursor (0, 2); lcd.print ("Rp"); lastSubProgState = 2; } //3. Anfang if ((subProgState == 3) && (lastSubProgState! = 3)) { lcd.noBlink (); lcd.setCursor (0, 2); lcd.print ("Start"); lastSubProgState = 3; } // 4. Ändern T 1. Digit if ((subProgState == 11) && (lastSubProgState! = 11)) { // 1. Digit cPosX = 1, cPosY = 1 cPosX = 5; cPosY = 1; lcd.blink (); resetRotState (Tdig1); lcd.setCursor (cPosX, cPosY); lcd.print (Tdig1); lcd.setCursor (cPosX, cPosY); lastSubProgState = 11; } else if (subProgState == 11) { lcd.setCursor (cPosX, cPosY); Tdig1 = rotationNumber; lcd.print (Tdig1); lcd.setCursor (cPosX, cPosY); } // 5. Ändern T 2. Digit if ((subProgState == 12) && (lastSubProgState! = 12)) { // 2. Digit cPosX = 6, cPosY = 1 cPosX = 6; cPosY = 1; lcd.blink (); resetRotState (Tdig2); lcd.setCursor (cPosX, cPosY); lcd.print (Tdig2); lcd.setCursor (cPosX, cPosY); lastSubProgState = 12; } else if (subProgState == 12) { lcd.setCursor (cPosX, cPosY); Tdig2 = rotationNumber; lcd.print (Tdig2); lcd.setCursor (cPosX, cPosY); } // 6. Ändern T 3. Digit if ((subProgState == 13) && (lastSubProgState! = 13)) { //3. Digit cPosX = 7, cPosY = 1 cPosX = 7; cPosY = 1; lcd.blink (); resetRotState (Tdig3); lcd.setCursor (cPosX, cPosY); lcd.print (Tdig3); lcd.setCursor (cPosX, cPosY); lastSubProgState = 13; } else if (subProgState == 13) { lcd.setCursor (cPosX, cPosY); Tdig3 = rotationNumber; lcd.print (Tdig3); lcd.setCursor (cPosX, cPosY); } // 4. Ändern Sie Ramp 1. Digit if ((subProgState == 21) && (lastSubProgState! = 21)) { // 1. Digit cPosX = 15, cPosY = 1 cPosX = 15; cPosY = 1; lcd.blink (); resetRotState (Rdig1); lcd.setCursor (cPosX, cPosY); lcd.print (Rdig1); lcd.setCursor (cPosX, cPosY); lastSubProgState = 21; } else if (subProgState == 21) { lcd.setCursor (cPosX, cPosY); Rdig1 = rotationNumber; lcd.print (Rdig1); lcd.setCursor (cPosX, cPosY); } // 5. Ändern Sie Ramp 2. Digit if ((subProgState == 22) && (lastSubProgState! = 22)) { // 2. Digit cPosX = 16, cPosY = 1 cPosX = 16; cPosY = 1; lcd.blink (); resetRotState (Rdig2); lcd.setCursor (cPosX, cPosY); lcd.print (Rdig2); lcd.setCursor (cPosX, cPosY); lastSubProgState = 22; } else if (subProgState == 22) { lcd.setCursor (cPosX, cPosY); Rdig2 = rotationNumber; lcd.print (Rdig2); lcd.setCursor (cPosX, cPosY); } updateTemp (false, cPosX, cPosY); } Leere display2 () { if (lastProgState! = 2) { lcd.noBlink (); lcd.clear (); // geh nach Hause lcd.print ("SDCard"); lcd.setCursor (0, 1); if (SDOpen! = true) { (! SD.begin (10)) if {stopProgram (); zurück; } } SDOpen = true; progCount = 0; for (int ii = 1; ii <10; ii ++) { String fname = String (ii); fname + = ".txt"; char fnamec [6]; fname.toCharArray (fnamec, 6); Datei myFile = SD.open (fnamec, FILE_READ); if (myFile) { progCount ++; } myFile.close (); } if (progCount == 0) { stopProgram (); zurück; } lastProgState = 2; subProgState = 1; lastSubProgState = -1; updateTemp (true); } if ((subProgState <10) && (lastSubProgState! = subProgState)) { String fname = String (subProgState); fname + = ".txt"; char fnamec [6]; fname.toCharArray (fnamec, 6); Datei myFile = SD.open (fnamec, FILE_READ); if (! myFile) { stopProgram (); } Byte-Zeile = 0; Byte Slength = 0; char tempString [1]; Headline String = ""; String ProgLine = ""; für (ii Byte = 0; II <10; ii ++) { progTSp [ii] = 0; progSprr [ii] = 0; progTime [ii] = 0; } while (myFile.available ()) { tempString [1] = myFile.read (); if (tempString [1] == '\ r') { } else if (tempString [1]! = '\ n') { ProgLine + = tempString [1]; Slength ++; } else { if (Linie == 0) {headline = ProgLine; ProgLine = ""; Slength = 0; Linie ++; } else { if ((line> 10) || (Slength> 20)) { stopProgram (); zurück; } char * accum; char buffer [Slength + 1]; ProgLine.toCharArray (buffer, Slength + 1); const char September [] = ""; progTSp [line-1] = atoi (strtok_r (Puffer, September, & accum)); if (progTSp [line-1]> MaxT) { progTSp [line-1] = MaxT; } progSprr [line-1] = atoi (strtok_r (NULL, September, & accum)); if (progSprr [line-1]> MaxR) { progSprr [line-1] = MaxR; }; if (progSprr [line-1] <1) { progSprr [line-1] = 1; } progTime [line-1] = atoi (strtok_r (NULL, September, & accum)); progLnCount = Linie - 1; // 0-Anzahl-1 Slength = 0; Linie ++; ProgLine = ""; // } } } myFile.close (); lcd.setCursor (0, 1); lcd.print (Leerstring); lcd.setCursor (0, 1); lcd.print (Headline); printProgLine (0, ProgLine); lcd.setCursor (0, 2); lcd.print (Leerstring); lcd.setCursor (0, 2); lcd.print (ProgLine); resetRotState (0); lastSubProgState = subProgState; } updateTemp (); } Leere display4 () { if ((lastDispPrg + 1000)> millis ()) {return; } if (lastProgState! = 4) { lcd.noBlink (); lcd.clear (); updateTemp (true); lastProgState = 4; } if (ProgRun == 0) { lcd.setCursor (0, 0); String line; printProcessLine (Linie); lcd.print (Linie); lcd.setCursor (0, 1); printSingleLine (Linie); lcd.print (Linie); } if (ProgRun> 0) { lcd.setCursor (0, 0); String line; printProcessLine (Linie); lcd.print (Linie); lcd.setCursor (0, 1); printProgLine (runLine, Linie); lcd.print (Linie); if (runLine! = progLnCount) { lcd.setCursor (0, 2); printProgLine (runLine + 1, Leitung); lcd.print (Linie); } else { lcd.setCursor (0, 2); lcd.print (Leerstring); } } updateTemp (); } Leere UpdateLog () { if (SDOpen! = true) { wenn {return (SD.begin (10)!); } } SDOpen = true; Datei myFile = SD.open ("T.log", FILE_WRITE); (! myFile), wenn {return; } myFile.print (millis () - LOGTIME); // MyFile.print (","); // MyFile.print (ATSP); myFile.print (","); myFile.println (tempVal); myFile.close (); } Wie Sie im Bild sehen kann, für eine erste (und nicht optimiert) versuchen, diese sehr schöne Ergebnisse. Eine wirklich nette Weise, das System (zB Verbesserung noch wäre es, eine Bibliothek zu implementieren autotunig von hier ), aber es wäre mehr Platz als das, was auf dem ATmega328 verfügbaren benötigen. Eine weitere Optimierung wäre, um eine genauere Thermo controller.Step 6 verwenden: Vorbereitung der Heizplatte Um herauszufinden, welche ist die beste Position für die Heizpatronen ist und ob eine ausreichende Wärmeverteilung kann mit 1 cm dicken Aluminium erreicht werden, simuliert ich die stationäre Temperaturprofil. Wie Sie sehen können, auf etwa 470 K (197 ° C, 387 F) die lokale Abweichung ist etwa ± 3 K, die genug für meine Zwecke ist. Beginnen Sie mit dem Bohren der Löcher für die Heizpatronen und das Thermoelement. Dieser Teil ist ein wenig kompliziert, und Sie müssen auf jeden Fall eine Bohrmaschine für diesen Schritt. Sie können auch versuchen, zwei Aluminiumplatten und Routing-Maschine mit einem Kugelfräser zu verwenden. Als nächstes bohren Sie die Löcher für die Gewindestangen aus Stahl und Verriegelungsschrauben in die Aluminiumplatten und Metallträger. Wenn Sie ein Thermoschalter als Sicherheitseinrichtung zu verwenden, auch bohren Sie die passenden Löcher in der Aluminiumplatte soll. Schmieren Sie die Heizpatrone und Thermoelement mit der Kupferpaste, um die Wärmeübertragung auf das Aluminium zu verbessern. Danach nutzen Sicherungsschrauben, um sie in der plate.Step 7 halten: Montage der Kochplatte Befestigen Sie den Thermoschalter an der Platte und löten einen Draht jeder Patrone, um einen Stift des Schalters. Schließen Sie das andere Stift mit dem Stecker im Metallgehäuse und den anderen Draht direkt mit einem Stift des Metallgehäuses. Zur Stabilisierung der Heizplatte, können Sie einen kleinen Kunststoffgehäuse in die Metalltragplatte kleben und füllen es mit Blei. Um einen Eindruck, wie heiß das Metallgehäuse des Trägers erhält erhalten, simuliert ich das Temperaturprofil der Heizplatte und die Stahlstangen unter der Platte. Es stellt sich heraus, dass bei 540 K (270 ° C, 518 F) die Stahlstäbe sind etwa 370 K (97 ° C, 206 F) heißen. Da ich die Temperatur auf 180 ° C zu begrenzen, ich hätte auch ein Holzgehäuse verwendet. Ich legte eine Warnung auf der heißen Platte mit hitzebeständigem Sprühfarbe und verwendet die Kochplatte, um es auf die Aluminium verbrennen.$(function() {$("a.lightbox").lightBox();});

      5 Schritt:Schritt 1: Gestalten Sie Ihre Oberflächen Schritt 2: Verkleidung Das Oberflächen Schritt 3: Hinzufügen etwas Tiefe Schritt 4: Erstellen Sie eine Platte Schritt 5: My Bedroom Lampe

      Viele Leute übersehen, Lampenschirme alltäglichen, aber hier ist eine unzerstörbare, Ihnen zu zeigen, wie man für ein 3D-Druck, die geben Sie Ihren Gästen eine doppelte nehmen zu machen und sicher, ein Gesprächsstarter bei Ihrem nächsten Dinner-Party werden. Ich werde durch die einzelnen Schritte gehen in die Schaffung einer zylindrischen Fläche, für die die Verkleidung Werkzeuge stecken Sie mit Rhino -Grasshopper verwenden, um einen einzigartigen Blick punktiert Lampenschirm zu schaffen. Schritt 1: Gestalten Sie Ihre Oberflächen Der einfachste Weg zu beginnen ist einfach Zylinder entweder mit dem Befehl Loft mit einem Paar kreisförmigen Kurven oder mit dem Befehl SWEEP 2 (das war, was ich verwendet) zu erstellen. Sobald Sie mit dem, was Sie gemacht zufrieden sind, sind Sie bereit, in die Heuschrecke zu bekommen, um zu starten bestrafen Ihre Oberfläche. Schritt 2: Verkleidung Das Oberflächen Jetzt sind wir bereit, unsere Heuschrecke Definition zu starten. Pop öffnen Sie die Stecker in indem Sie einfach HEUSCHRECKE (dies gilt für die meisten hoch-Befehle als auch). In Heuschrecke, doppelklicken Sie einfach auf die Rückseite Raster, um diese Befehlszeile zu erreichen. 1. Geben Sie Oberfläche, um auf diese Schaltfläche hinzufügen (rechte Maustaste, um die atemberaubenden diese Oberfläche die Sie gerade gemacht wählen) 2. Als nächstes fügen Sie einen BREP COMPONENTS Taste für mehr Flexibilität für den Einsatz auf der ganzen Linie in Schritten. (Glauben Sie mir hier) 3. Nun beginnen wir mit den Verkleidungswerkzeuge können. Finden Sie den Oberflächenbereich NUMBER-Taste (siehe oben) 4. Nachdem Sie die benannten Registerkarten zu verbinden, müssen wir die Zahl der Scheiben für das Grid zu etablieren - Schiebetaste Hinweis: Wenn Sie sehen, einige Tasten sind hell oder dunkelgrau, dh sie sind entweder sichtbar oder nicht (rechte Maustaste einstellen) Schritt 3: Hinzufügen etwas Tiefe Dieser Schritt wird unsere gewünschten Panels geben uns mehr Tiefe, da es ein zweites Raster für die Platte, um in die normale Richtung zu erweitern die Oberfläche bilden zu erstellen. 1. Fügen Sie zunächst ein Offset-Taste (siehe oben). 2. Als Nächstes fügen Sie eine zweite Oberfläche DOMAIN NUMBER-Taste, um die Offset-Oberfläche zu stecken 3. Wir haben jetzt zwei Gitter rund um unsere Oberfläche. Lets kombinieren die beiden mit einer 3D-Taste MORPH 4. Wählen Sie nun einen BREP-Taste, um so das Panel, dass Sie alle diese wunderbaren Panels mit bevölkern wollen handeln Hinweis: Keine Panik, wenn Sie nicht sehen, dass etwas passiert doch (Geduld jungen Heuschrecke). Auch wenn Sie orange oder rote Tasten haben, bedeutet dies, nur muss es sein, ein Element zugeordnet oder dass Ihre Akkorde sind Fehl plugged.Step 4 noch: Herstellung einer Platte Nun zum spaßigen Teil, lässt einen kühlen Tafel! Dies ist vor allem diejenigen an Ihnen und Ihrem eigenen Design-Ästhetik. Oben zeigte ich ein kleines Beispiel dafür, wie ich nahm ein Flugzeug mit einigen Löchern, um das Muster Ich wollte zu erstellen (Einen besseren) 1. FLUGZEUG Befehl (halten Sie Platz bis jetzt) 2. Zeichnen Sie ein paar Kurven auf der Ebene, sicherzustellen, dass sie flach sind. 3. Verwenden Sie die SPLIT-Tool, um diese Form aus Ausstecher Stil geschnitten 4. Wählen Sie diese Fläche mit der rechten klicken Sie auf die Schaltfläche in BREP Heuschrecke und weisen Sie es. Hat jemand Cookies zu sagen? Jetzt rechts klicken Sie auf die MORPH 3D-Taste und backen, Waalaa - Köstliche Lampe readyStep 5: My Bedroom Lampe Nun, bevor Sie weg laufen und denken Sie fertig sind, denken Sie daran, Sie müssen, um eine Dicke an der Oberfläche hinzuzufügen. 3D-Drucker sind erstaunlich, aber sie nicht nur Flugzeuge drucken. Verwenden Sie die Offsetfläche Befehl, es zu den notwendigen Dicke wünschen Sie. (Stellen Sie sicher, überprüfen Sie die "feste box ') Danke fürs Lesen, ich hoffe, Sie haben es genossen!

        12 Schritt:Schritt 1: Filtern Sie die Harz- Schritt 2: Befestigen Aufbau Leiter Schritt 3: Kalibrieren Maschine Schritt 4: an den Drucker senden Sie die Datei Schritt 5: Drucken und Prüfen Schritt 6: Stare in Awe Schritt 7: Scrape Modell Off Schritt 8: Spülen Sie das Harz aus Schritt 9: Schließen Sie die Polymerisation Schritt 10: Clean Up (Harze erhalten überall) Schritt 11: Schneiden Sie die Supports Schritt 12:

        Dieses Tutorial wird durch die zehn grundlegenden Schritte ausführen, um ein Design aus dem Computer und auf die Hand mit der Ember 3D printer.Step 1 erhalten: Filtern Sie die Resin Bevor Sie etwas beginnen, stellen Sie sicher, dass Ihr Harz mit einem Spann Trichter sauber gefiltert. Saubere Harz macht den Ember glücklich und wird in erfolgreicher Drucke führen. Wenn der Trichter wird ein wenig verstopft nutzen Sie Ihre Handschuh Hand, um ein bisschen mischen Sie es durch. Schritt 2: Befestigen Aufbau Leiter Verwenden Sie den Hebel über der Print Arm und befestigen Sie das build Kopf. Es sollte keinen Widerstand, wenn sie alle Leitungen richtig sein. Schritt 3: Kalibrieren Maschine Als nächstes müssen wir die Kalibrierung der Maschine. Vertrauen Sie mir, es ist nicht so technisch wie es klingt: A. Verwenden Sie die Alan Key, der in die Druck Arm Schlitze, um den Aufbau Kopf lockern (righty tighty - links loosey) B. Nehmen Sie die Lever Sie im letzten Schritt verwendet, und schwenken Sie es hin und her, um Eisen aus der die Blasen unter gefangen. C. Richten Sie die Build-Kopf mit dem Projektionsfenster und vorsichtig ziehen Sie sie zurück on.Step 4: an den Drucker senden Sie die Datei Nachdem Sie nun kalibriert und bereit zum Drucken, senden Sie die Datei an Ember und drücken Sie einfach die rechte Maustaste, um fortzufahren. Schritt 5: Drucken und Prüfen Immer ein Auge auf Ihre Druck halten während der ersten paar Schichten. Wenn Sie sehen, kleine Partikel im Umlauf oder Stücke Festhalten an der PDMS-Fenster haben Sie vielleicht, um den Druck zu starten. Leider Ihren Druck wird höchstwahrscheinlich fehlschlagen, wenn es nicht eine starke Haft Satz von Basis layers.Step 6 haben: Stare in Awe Nach ein paar Stunden des magischen Terminator wie Technik und Präzision, da ist es, sitzen direkt vor Ihnen. Es ist fast zu kostbar, um touch.Step 7: Scrape Modell Off Nehmen Sie die Build-Leiter ab und Kratzen Sie die kleinen Sauger rechts von diesem Bett und ihn frei. Achten Sie darauf, dabei nur den schwarzen Teil der Druckkopf auf seiner Seite zu halten und meiden die Schälmesser so Ihr Werkzeug der Wahl nicht aufspießen Sie. Schritt 8: Spülen Sie das Harz aus Es ist Badezeit, dieser Kerl muss bereit für ihren großen Tag zu sein, beim Casting Auditions. Tauchen Sie es für ein paar Minuten in Isopropylalkohol alcohol.Step 9: Schließen Sie die Polymerisation Im Falle wird er ein wenig unter gekocht suchen, können ihm die Spa-Behandlung und legte ihn zurück in die UV-Sonnenbank für einen heißen Minute. Dadurch wird sichergestellt, alle nicht polymerisierten Harz härtet vollständig. Schritt 10: Clean Up (Harze erhalten überall) OK, halten Sie jetzt, bevor Sie verlassen. Sooo, wenn Sie es richtig gemacht haben, können Sie definitiv nicht so viel Durcheinander zu machen. Aber wenn man auf allen Zylindern feuern werden, um eine Reihe von Test auf einem Mini-Produktionslinie von 5 Embers werden Sie wahrscheinlich das Gefühl haben, auf Top Chef oder Benihana? Machen Sie mit Schritt 11:. Schneiden Sie die Supports Letzter Schritt, lässt ihm einen Haarschnitt. Nehmen Sie Ihre Lieblings-Zangen und fein schneiden Sie die Stützen. Nehmen Sie sich Zeit hier, die Sie nicht zu versauen die Druck nach all dem wollen durch rausch obwohl es. Schritt 12:

          6 Schritt:Schritt 1: Was Sie benötigen Schritt 2: Gießen Agar Schritt 3: innoculate mit Bakterien und Schimmel Schritt 4: Genetically Engineered (leuchtenden) Bakterien Schritt 5: Schlechter Mutant-Bakterien Schritt 6: Magnet hinzufügen

          In diesem instructable werde ich Ihnen zeigen, wie Kühlschrankmagneten Labor Aussenseiter machen. Warum nicht zieren den Kühlschrank mit Petrischalen wachsen Schimmelpilze und Bakterien. Nun, vielleicht ist das nicht so eine tolle Idee (keine Sorge, diese niedlichen Magneten für den Kühlschrank nicht wirklich irgendwelche Kulturen enthalten). Ich arbeite in einem Labor, das Gewebekultur funktioniert und wir hatten ein paar alte Petrischalen herumliegen, dass wir nicht mehr verwenden waren, so nahm ich ein paar zu Hause. Ich bin immer noch nicht sicher, was mit all den Gerichten zu tun, obwohl dies schien eine tolle Möglichkeit, einige them.Step 1 verwenden: Was Sie benötigen Petrischalen - Sie können diese bis an die Wissenschaft Versorgung-Läden (Pick beispiels ) Kleber Sharpies und malen Neodym-Magnete Weißbuch Schritt 2: Gießen Agar Unter Verwendung einer sterilen Technik (kleiner Scherz) Füllen Sie den Boden der Petrischale mit Leim, breitete es gleichmäßig auf die ganze Platte mit gleicher Dicke zu bedecken. Abkühlen lassen und harden.Step 3: innoculate mit Bakterien und Schimmel Ich habe sharpies, um die Bakterien und Schimmel auf der Oberfläche des Klebers zu ziehen. In der ersten Schale habe ich versucht, eine Mimik streak Platte . Auf der anderen Gericht zog ich eine Kolonie von bunten Form strahlenförmig von der Mitte. Schritt 4: Genetically Engineered (leuchtenden) Bakterien Ich hatte einige im Dunkeln leuchten malen so tupfte ich Punkte von Farbe auf die Oberfläche des Klebstoffs, so dass es aussah wie Bakterienkolonien mit Biolumineszenz genes.Step 5 transformiert: Schlechter Mutant-Bakterien Für diese letzte Schüssel wollte ich, dass es wie die Bakterien wurde aus dem Gericht Nässen sehen so bewarb ich mich ein Klecks Leim auf die Oberfläche als auch über den Rand der Schale und dann bedeckte sie mit im Dunkeln leuchten paint.Step 6 : Magnet hinzufügen Sobald das Geschirr eingerichtet fügte ich weißes Papier an der Rückseite der Schale (sonst können Sie den Magneten in hinter sehen), dann verklebt den Magneten auf. Für die Größe der Schale war ich mit Ich brauchte eine kleine Neodym-Magnet, müssen Sie möglicherweise mehr als eine für größere Gerichte.

            19 Schritt:Schritt 1: Material und Werkzeug Schritt 2: Das Gehäuse Schritt 3: Erstellen Sie die Frontplatte Schritt 4: Aufstellen des ATX Schritt 5: Netzanschluss (ICE-Anschluss) Schritt 6: Lüftung Schritt 7: Erstellen Sie den Spannungsregler. Schritt 8: Löten Sie die Kabel, schema Schritt 9: Netzkabel Schritt 10: Montage Kabel von der Tür nach innen. Schritt 11: Die Schnellkupplung. Schritt 12: Montage der Drahtwiderstand Schritt 13: Montage eines Magnethaken an der Tür Schritt 14: Schneid unerwünschte Kabel von ATX Schritt 15: Labeling Schritt 16: Montage der Voltmeter und Amperemeter Schritt 17: Der Durchgangsprüfer Schritt 18: Fertig! Schritt 19: Ersetzen Sie das Netzteil

            Diese instructable zeigen Ihnen, wie Sie eine sehr gute Bank Netzteil mit überwiegend recycelten Teile. Dies ist das wirklich der "mark II" können Sie sehen, "Marke Ich" hier.   Als ich fertig war meine erste Bank Stromversorgung war ich wirklich glücklich, und benutzte es sehr oft, fast jeden Tag, bis eines Tages beschlossen, nicht mehr zu arbeiten, so :( ... Ich erkannte ich, um es noch einmal zu tun hatte, einschließlich der nicht so einfach Bohrungen auf dem Metall des ATX etc. Also dieser Zeit mache ich eine Bank-Stromversorgung, können Sie den ATX in nicht mehr als 2 min zu ersetzen. Letztes Mal habe ich keine Bilder des Prozesses zu nehmen, so konnte ich nur eine Diashow mit dem fertigen Produkt zu tun, aber dieses Mal habe ich viele Bilder, so dass ich diese Instructable, die ich hoffe, Sie werden es mögen. Können Sie sich entscheiden, gehen Sie vor und bauen Sie Ihre eigenen? ... Ich möchte die Gelegenheit nutzen, um zu sagen, dass ich mehr als glücklich, Ihnen bei allen Fragen zu helfen, und auch ich werde Vorschläge lieben, damit ich entweder zu verbessern Diese instructable oder die Bank Stromversorgung selbst. Wie der Titel zeigt, mit dieser instructable Ich möchte Menschen ermutigen, zu recyceln. Es gibt viele Dinge rund um das Haus oder sogar in den Straßen, die Sie Komponenten abnehmen, und verwenden Sie sie später auf so viele interessante Dinge zu machen. Ich so viele Recyclingteile verwendet, wie ich konnte für dieses Projekt, und wenn Sie das gleiche zu tun, können Sie ein sehr leistungsfähiges und COOL haben könnte! Bank Stromversorgung für fast nichts. OK .. lets mit Blick auf das, was wir machen werden beginnen ....

              8 Schritt:Schritt 1: Starten Sie mit frischen, warmen Milch Schritt 2: Säure die Milch Schritt 3: Fügen Sie eine Coagulant Schritt 4: Testen für die Gelfestigkeit Schritt 5: Schneiden Sie die Curd Schritt 6: Stir, Cook & Waschen Sie den Curd Schritt 7: Lassen Sie die Quarkmasse Schritt 8: Salz und Alter der Cheese

              Dies ist eine grundlegende Instructable darüber, wie man Käse macht. Es wird nicht als ein Rezept, sondern als eine gute Möglichkeit, sich mit den Schritten dieses alte Handwerk vertraut machen soll. Für spezielle Rezepte Besuche einige meiner anderen Instructables oder mein Buch über Heimkäse ( Kitchen Creamery, Chronicle Books ).

                6 Schritt:Schritt 1: Messen Sie die PVC und schneiden Sie es Schritt 2: Bohrungen in beiden Enden Schritt 3: Lackierschritt Schritt 4: Hinzufügen der reflektierenden Schicht Schritt 5: Fügen Sie die LED-Streifen Schritt 6: letzten Einstellungen & CO.

                Materialien und Kenntnisse über Materialien Aus diesem instructable brauchen wir: - PVC-Schlauch - LED-Streifen - Alufolie - Klebeband - Ein Netz suply - Einige Kabel - Spray Kleber Und auch diese grundlegenden Werkzeuge: - Ein Lineal - Ein Schneid - Etwas, wie ein "Sharpie" (einem Cutter oder einer x-Skalpell Arbeit besser) markieren - A Bügelsäge - Eine Bohrmaschine mit einem 6 mm Bohrer - Ein Maßband - Ein Lötkolben (und Lot) -------- Materialkenntnisse -------- Deshalb verwenden wir geführte Streifen. - Wir benutzen geführte Streifen, weil sie effizienter sind, längere Lebensdauer, sie nicht bekommen, heiß und sehr viel mehr Vorteile.

                  16 Schritt:Schritt 1: Verbindung mehr frei Schritt 2: Molex MicroFit 3.0 Übersicht Schritt 3: Molex MicroFit 3.0 Stripping Schritt 4: Draht an Crimp Schritt 5: Einsetzen der Crimp in der Werkzeug Schritt 6: Crimp- Schritt 7: Eine erfolgreiche Crimp! Schritt 8: Crimp zu Housing Schritt 9: Gegen Geschlecht Schritt 10: Abgeschlossen Set Schritt 11: Spaten, Ring, Sleeve und Crimpen Schritt 12: Werkzeuge und Teile Schritt 13: entkleiden, Schneiden, Verzinnen Schritt 14: Einsetzen der Draht Schritt 15: Crimp- Schritt 16: Fertige Crimp

                  Wollen die Menschen in der Elektronik-Labor zu erfüllen, aber keine Ahnung von was reden? Machen Sie einige Verbindungen! Fragen Sie sie über ein Projekt, das im Bereich gescheitert, die Chancen sind es wegen einer losen Verbindung ist. Wir alle haben es mit Projekten, die nicht in einem entscheidenden Moment Vorform Sie waren. Nichts tötet ein Projekt schneller als ein janky Lötstelle oder eine lose Draht. Es ist Zeit, mit diesen Ratten Nester umzugehen und machen feste Verbindungen mit dem erstaunlichen Verbindungen Schublade Shop Personal Coby zusammen. Dank der Video Hilfe Punkt.

                    19 Schritt:Schritt 1: Ausrüstung benötigen Sie: Schritt 2: OK Das Wichtigste zuerst Schritt 3: Gießen Sie in der Zitronensäure. Schritt 4: Milch erhitzen, um 88 bis 90 Grad F. gelegentlich umrühren. Schritt 5: Bei 88-90 Grad schalten Sie die Hitze und rühren in der Lab-Lösung für 15-20 Sekunden. Schritt 6: Warten Sie einen klaren Bruch. Schritt 7: Schneiden Sie den Quark. Schritt 8: Lassen Sie die ungestört für 5-10 Minuten eingestellt Quarkmasse. Schritt 9: Tragen Sie niedrige Hitze und Hitze bis 108 Grad. Schritt 10: Schalten Sie die Hitze. Schritt 11: Lassen Sie die Quarkmasse. Schritt 12: Gießen Sie die Quarkmasse in die kleinere Schüssel. Schritt 13: Heizen Sie den Quark. Schritt 14: Drücken Sie die Quarkmasse Schritt 15: Mikrowelle wieder. Schritt 16: Dehnen. OK kommt der lustige Teil. Schritt 17: Arbeiten Sie in eine Kugel. Schritt 18: KÄSE !!!!!!!! Schritt 19: Schlussnoten.

                    Dies hat sich ein wenig Überarbeitete, weil einige Leute haben ein wenig Mühe mit dem Original hatte. Auch hatte ich ein paar schlechte Chargen. Die Hauptunterschiede sind die Zeiten, in der Mikrowelle. Befolgen Sie die Anweisungen sorgfältig und Sie sollten am Ende mit einer fast 100% narrensicher Charge von Mozzarella-Käse Wenn Sie eine frische hausgemachte Mozzarella-Käse, dann versuchen, diese Instructable. Wenn Sie noch nie frische Mozzarella gehabt haben, versuchen Sie es jede mögliche Weise. Es gibt einen großen Unterschied zwischen den Paketen zu stopfen Sie in den Laden und den Käse machen Sie sich selbst kaufen. Es dauert nur ein paar Stunden aus Ihrem Leben, aber es wird gut sein lohnt sich. Es gibt eine Vielzahl von Rezepten über das Internet, aber viele von ihnen scheinen einen wichtigen Schritt oder 2 überspringen oder nicht wirklich erklären, es gut genug, so habe ich viele Chargen durch Versuch und Irrtum kombiniert Dinge, die ich gelernt habe, und experimentierte gemacht mit (so dass Sie nicht haben, um) und kommen mit diesem Rezept, das an die Arbeit wirklich gut scheint. Es gibt auch viele Rezepte gibt sprach machen Mozzarella-Käse in 30 Minuten. Realistisch betrachtet, wird es nicht passieren, wenn Sie es richtig machen wollen. Planen Sie dauert etwa eine Stunde und eine halbe bis 2 Stunden. Wie Sie mehr Chargen zu machen können Sie es bis auf vielleicht eine Stunde oder so zu schneiden. Ich benutze Vollmilch für die Mine, aber Sie sollten in der Lage, Mager, 1% oder 2% Milch auch nicht nutzen. Wenn Sie Zugang zu Frischmilch Ihr sogar besser zu bewirtschaften und ich bin eifersüchtig. Sie können auch die Ziege, Büffel oder Kamelmilch.

                      4 Schritt:Schritt 1: Angüsse + Support Schritt 2: Spark-Platform-Einstellungen Schritt 3: Wasserschieber Set-up Schritt 4: Senden Sie den Druck

                      In diesem Instructable, sind wir auf unsere Erfahrungen mit der Ausdruck über den DWS DC550 Wirkbare Harz aus DigitalWax auf dem Ember 3D-Drucker berühren. Wir führen Sie durch den Prozess der Verwendung dieses Harzes und alle Tipps und Tricks, die wir gelernt haben, ganz wie eine optimale Orientierung, Druckereinstellungen, die Einrichtung der Rakel, etc führen ...

                        5 Schritt:Schritt 1: Drawing Board Schritt 2: Grundmodellierung Schritt 3: Kurven auf Curves auf Curves Schritt 4: Hinzufügen von Angüsse Schritt 5: Meshmixer für Ember

                        Immer, wenn wir beginnen Gestaltung, die wir immer gerne durch unsere Sammlung von Bildern, die wir im Laufe der Jahre spar worden zu gehen. Für diese Linie von Schmuck, waren wir auf eine Menge von der Natur suchen, insbesondere Muster in der Natur gefunden. Sobald wir das Bild, das zu uns spricht, ist es auf dem Reißbrett zu erhalten!

                          9 Schritt:Schritt 1: Reparatur Gedruckt Models Schritt 2: Befestigen Models auf Tor Feeder Schritt 3: Messen und Mix Investitions Schritt 4: Investitionen Prep für Cast Schritt 5: Resin Burnout Schritt 6: Hinzufügen von Silber Bits Schritt 7: Entfernen Modell aus Investitions Schritt 8: Lassen Sie es locker Schritt 9: Buff und Wäschetrockner

                          Diese Instructable führt Sie durch die wichtigsten Schritte in die ein gießbares Harzbasis Ember 3D-Druck in eine endgültige Schmuckstück notwendig zu gehen. Unsere Oakland basierend Nachlauf, Alexis Pavlantos, war so freundlich, ihr Studio zu öffnen für uns die Schritte sie in unseren Schmuck-Design Drucke Guss braucht, um zu erfassen.

                          Seiten: