Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Magnetschweben mit Arduino

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
Du kannst jedes Arduino verwenden, aber der Schild ist für den Nano gemacht.
× 1
Elektromagnet 12V 25mm Durchmesser.
× 1
Linearer Hall-Effekt-Sensor 49E
Verwenden Sie keinen Hall-Effekt-Schalter.
× 1
Darlington Hochleistungstransistor
TIPP 120
× 1
Widerstand 1k Ohm
× 1
1N4007 – Hochspannungs-, Hochstrom-Nenndiode
× 1
Stromversorgung 12V 1A
× 1
Breadboard (generisch)
× 1
SparkFun Drucktastenschalter 12 mm
× 2
Jumper (generisch)
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Levitator mit Arduino.

Sie können den Körper in 3D drucken oder nicht.

https://www.thingiverse.com/thing:1392023

  • Einfach zu drucken und zu montieren (nur etwas Kleber, keine Schrauben).
  • Installieren Sie einfach die Firmware (Levitator.ino) auf dem Arduino-Board.
  • Benötige keinen Computer, nur die 12-V-Stromversorgung, nachdem die Firmware installiert wurde.
  • Verwenden Sie die Schalter, um die Position des Permanentmagneten einzustellen.
  • Verwenden Sie den seriellen Arduino-Monitor, um den richtigen Wert für Sie zu sehen.
  • Du kannst den richtigen Wert in deinem Spielzeug fest codieren.

Sie können ein Protoboard verwenden oder Ihr Board herstellen (Arduino Nano).

http://www.thingiverse.com/thing:1392530

Oder kaufen Sie einfach einen:

https://oshpark.com/shared_projects/kxH3Ak1b

Achtung:

  • Setzen Sie den Hall-Sensor unten in die Spitze (top_sensor.stl) sehen Sie die Bilder;
  • Um korrekt zu funktionieren, muss der Hall-Effekt-Sensor mindestens 5 mm von elektromagnetischen Geräten entfernt sein.
  • Sie können andere lineare Hallsensoren verwenden (verwenden Sie keinen Hallsensorschalter );
  • Neodym-Dauermagnete verwenden (es funktioniert nicht mit gewöhnlichen Magneten);
  • Schwere Gegenstände sind stabiler;

Siehe meine Marken im Thingiverse für weitere Details und Tipps.

Levitator 3D gedruckt:

https://www.thingiverse.com/make:201394

Schild für Arduino Nano:

https://www.thingiverse.com/make:201420

Das ist ganz einfach.

Code

  • Levitator.ino
  • Levitator_PID.ino
Levitator.inoArduino
Code für Magnetschwebespielzeug mit Arduino.
Einfach(Keine PID)
//========================================================|// Ekobots Innovation Ltda - www.ekobots.com.br |// Juan Sirgado y Antico - www.jsya.com.br |//- -------------------------------------------------- ------|// Program Magnetic Levitator - 2016/02/06 |// Alle Rechte vorbehalten 2016 |//========================================================|int anaPin =1; // Arduino analoger Pin 1;int digPin =5; // Arduino Digital Pin 5;int subPin =7; // Arduino Digital Pin 7;int addPin =8; // Arduino Digital Pin 8; //int anaVal =0; // Analoger Read (Hall Sensor) Value; boolean digVal =0; // Digitaler Schreibwert (Elektromagnet) //int levVal =228; // Schwebepunktwert;int dlyVal =250; // Verzögerungswert Mikrosekunden; //----------------------------------------- ----------------|void setup(){ // Levitator-Initialisierung Begin; Serial.begin (57600); Serial.println ("Levitator von JSyA"); Serial.println("Startet..."); // Einrichtung des Arbeitsmodus für digitale Pins; pinMode (digPin, AUSGANG); pinMode (subPin, INPUT_PULLUP); pinMode (addPin, INPUT_PULLUP); // Initialisierung des Levitators End; Serial.println("Gestartet.");}//------------------------------------- --------------------|void loop () {// Hall Sensor Read (Magnetic Field Intensity); anaVal =analogRead (anaPin); // Erhöhen Sie den Wert des Schwebepunktes; if (digitalRead (addPin) ==LOW) { levVal++; value_log(); Verzögerung (250); } // Wert des Schwebepunktes verringern; if (digitalRead (subPin) ==LOW) { levVal--; value_log(); Verzögerung (250); } // Überprüfen Sie den Schwebepunkt; if (anaVal  levVal) { digVal =HIGH; } // // Schalten Sie den Elektromagneten ein / aus; // Mit Basis auf Sensorwert und Levitationspunkt; digitalWrite (digPin, digVal); delayMicroseconds(dlyVal);}//----------------------------------------------------- ---------------|void value_log() // Analoge/Digitale/Levitationswerte Print;{// Zeigen Sie den Hall-Sensorwert an; Serial.print("anaVal=["); Serial.print (anaVal); Serial.print("]-"); // Zeigen Sie den Elektromagnet-Zustand an =1 / Aus =0; Serial.print("digVal=["); Serial.print (digVal); Serial.print("]-"); // Zeige den Schwebepunktwert; Serial.print("levVal=["); Serial.print (levVal); Serial.println("];");}//=======================================================|
Levitator_PID.inoArduino
Code für Magnetschwebespielzeug mit Arduino.
Hard(PID-Version)
//========================================================|// Ekobots Innovation Ltda - www.ekobots.com.br |// Juan Sirgado y Antico - www.jsya.com.br |//- -------------------------------------------------- ------|// Program Magnetic Levitator PID - 2016/10/06 |// Alle Rechte vorbehalten 2016 |//=========================================================|int anaPin =1; // Arduino analoger Pin 1int digPin =5; // Arduino Digital Pin 5int subPin =7; // Arduino Digital Pin 7int addPin =8; // Arduino Digital Pin 8 // Int anaVal =0; // Analoges Valieint digVal =0; // Digitalwert //int levVal =262; // Schwebewertint dlyVal =10; // Verzögerungswert // Float timVal =0; // Zeitwert//-------------------------------------------- -------------|// PID-Wertefloat setpoint =0;float gemessener_wert =0;float Ausgang =0;float Integral =0;float Derivat =0;float Fehler =0;float vorheriger_Fehler =0;float dt =0,1;float Kp =1,0;float Ki =0,1;float Kd =0,01;//------------------------- ------------------------------------------|void setup(){ // Levitator-Initialisierung Begin; Serial.begin (57600); Serial.println ("Levitator von JSyA"); Serial.println("Startet..."); // Einrichtung des Arbeitsmodus für digitale Pins; pinMode (digPin, AUSGANG); pinMode (addPin, INPUT_PULLUP); pinMode (subPin, INPUT_PULLUP); // timVal =millis(); Sollwert =levVal; // Initialisierung des Levitators End; Serial.println("Gestartet.");}//------------------------------------- --------------------|void loop () // PID { // Hall Sensor Read (Magnetic Field Intensity); anaVal =analogRead (anaPin); // PID-Berechnungen measure_value =anaVal; Fehler =Sollwert - Messwert_Wert; Integral =Integral + Fehler * dt; Ableitung =(Fehler - vorheriger_Fehler) / dt; Ausgabe =(-Kp * Fehler) + (-Ki * Integral) + (-Kd * Ableitung); vorheriger_Fehler =Fehler; // Endwerteinstellung digVal +=Ausgabe; // Überprüfen Sie den Wert für den Schwebepunkt; if (digVal <0) digVal=0; if (digVal> 255) digVal=255; // Wert für Elektromagnet erhöhen/verringern; // Mit Basis auf Sensorwert und Levitationspunkt; analogWrite (digPin, digVal); // Log-Werte für Debug anzeigen;// if((millis()-timVal)> 500)// {// value_log();// timVal =millis();// } // Erhöhen Sie den Wert des Schwebepunkts; if (digitalRead (addPin) ==LOW) { setpoint++; value_log(); Verzögerung (250); aufrechtzuerhalten. Wenn (digitalRead (subPin) ==LOW) {Sollwert--; value_log(); Verzögerung (250); } // Zeit zwischen den Zustandsänderungen des Elektromagneten; delayMicroseconds(dlyVal);}//----------------------------------------------------- ---------------|void value_log() // Analoge/Digitale/Levitationswerte Print;{// Zeigen Sie den Hall-Sensorwert an; Serial.print("anaVal=["); Serial.print (anaVal); Serial.print("]-"); // Zeigen Sie den Elektromagnet-Zustand an =1 / Aus =0; Serial.print("digVal=["); Serial.print (digVal); Serial.print("]-"); // Zeige den Schwebepunktwert; Serial.print("Sollwert=["); Serial.print (Sollwert); Serial.println("];");}//=======================================================|

Schaltpläne

Fritzing-IDE

Herstellungsprozess

  1. DIY einfachste IV9 Numitron-Uhr mit Arduino
  2. CO2-Überwachung mit K30-Sensor
  3. taubblinde Kommunikation mit 1Sheeld/Arduino
  4. Münzprüfer mit Arduino steuern
  5. Arduino mit Bluetooth zur Steuerung einer LED!
  6. Kapazitiver Fingerabdrucksensor mit einem Arduino oder ESP8266
  7. Mit Nextion Display spielen
  8. Nunchuk-gesteuerter Roboterarm (mit Arduino)
  9. Arduino Repulsive Electromagnetic Levitation
  10. Messung der Sonneneinstrahlung mit Arduino