工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoによる磁気浮上

コンポーネントと消耗品

>
Arduino Nano R3
どのarduinoでも使用できますが、シールドはNano用に作られています。
× 1
電磁石12v直径25mm。
× 1
線​​形ホール効果センサー49E
ホール効果スイッチを使用しないでください。
× 1
ダーリントンハイパワートランジスタ
ヒント120
× 1
抵抗1kオーム
× 1
1N4007 –高電圧、高電流定格ダイオード
× 1
電源装置12V1A
× 1
ブレッドボード(汎用)
× 1
SparkFunプッシュボタンスイッチ12mm
× 2
ジャンパー線(汎用)
× 1

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

Arduinoを搭載したレビテーター。

ボディを3Dプリントすることもできません。

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

  • 印刷と取り付けが簡単です(接着剤を少し使用するだけで、ネジは不要です)。
  • ファームウェア(Levitator.ino)をarduinoボードにインストールするだけです。
  • ファームウェアをインストールした後は、12V電源だけで、コンピューターは必要ありません。
  • スイッチを使用して永久磁石の位置を調整します。
  • arduinoシリアルモニターを使用して、正しい値を確認してください。
  • おもちゃに正しい値をハードコーディングできます。

プロトボードを使用することも、ボードを作成することもできます(Arduino Nano)。

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

<図>

または、1つ購入するだけです:

https://oshpark.com/shared_projects/kxH3Ak1b

<図>

注意:

  • ホールセンサーをチップの下部に配置します(top_sensor.stl)画像を参照してください;
  • 正しく機能するには、ホール効果センサーが電磁気から少なくとも5mm離れている必要があります。
  • 他のリニアホールセンサーを使用できます (ホールセンサースイッチは使用しないでください );
  • ネオジム永久磁石を使用 (一般的な磁石では機能しません);
  • 重いオブジェクトはより安定しています。
<図>

詳細とヒントについては、Thingiverseの私のメイクを参照してください。

Levitator 3Dプリント:

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

Arduino Nanoのシールド:

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

それは簡単です。

コード

  • Levitator.ino
  • Levitator_PID.ino
Levitator.ino Arduino
Arduinoを使用した磁気浮上玩具のコード。
Easy(No PID)
 // =========================================================| // Ekobots Innovation Ltda-www.ekobots.com.br | // Juan Sirgado y Antico-www.jsya.com.br | //- -------------------------------------------------- ------ | //プログラムMagneticLevitator-2016 / 02/06 | // All rights reserved 2016 | // =========================================================| int anaPin =1; // Arduinoアナロジックピン1; int digPin =5; // Arduinoデジタルピン5; int subPin =7; // Arduinoデジタルピン7; int addPin =8; // Arduinoデジタルピン8; // int anaVal =0; // Analogic Read(Hall Sensor)Value; boolean digVal =0; // Digital Write(Electromagnet)Value; // int levVal =228; // Levitation Poit Value; int dlyVal =250; //遅延値マイクロ秒; // ----------------------------------------- ---------------- | void setup(){//レビテーターの初期化開始; Serial.begin(57600); Serial.println( "Levitator by JSyA"); Serial.println( "開始中..."); //デジタルピンの作業モードの設定; pinMode(digPin、OUTPUT); pinMode(subPin、INPUT_PULLUP); pinMode(addPin、INPUT_PULLUP); //レビテーターの初期化終了; Serial.println( "Started。");} // ------------------------------------- -------------------- | void loop(){//ホールセンサーの読み取り(磁場の強さ); anaVal =analogRead(anaPin); //レビテーションポイントの値を増やします; if(digitalRead(addPin)==LOW){levVal ++; value_log(); delay(250); } //レビテーションポイントの値を減らす; if(digitalRead(subPin)==LOW){levVal--; value_log(); delay(250); } //レビテーションポイントを確認します。 if(anaVal  levVal){digVal =HIGH; } ////電磁石のオン/オフを切り替えます。 //センサー値と浮上点に基づいて; digitalWrite(digPin、digVal); delayMicroseconds(dlyVal);} // ------------------------------------------ --------------- | void value_log()//アナロジック/デジタル/レビテーション値Print; {//ホールセンサー値を表示; Serial.print( "anaVal =["); Serial.print(anaVal); Serial.print( "]-"); //電磁石の状態を表示しますOn =1 / Off =0; Serial.print( "digVal =["); Serial.print(digVal); Serial.print( "]-"); //浮上点の値を表示します; Serial.print( "levVal =["); Serial.print(levVal); Serial.println( "];");} // =========================================================| 
Levitator_PID.ino Arduino
Arduinoを使用した磁気浮上玩具のコード。
ハード(PIDバージョン)
 // =========================================================| // Ekobots Innovation Ltda-www.ekobots.com.br | // Juan Sirgado y Antico-www.jsya.com.br | //- -------------------------------------------------- ------ | //プログラムMagneticLevitator PID-2016 / 10/06 | // All rights reserved 2016 | // =========================================================| int anaPin =1; // Arduinoアナロジックピン1intdigPin =5; // Arduinoデジタルピン5intsubPin =7; // Arduinoデジタルピン7intaddPin =8; // Arduinoデジタルピン8 // int anaVal =0; //アナロジックValieintdigVal =0; //デジタル値// intlevVal =262; // Levitation Valueint dlyVal =10; //遅延値// float timVal =0; //時間値// -------------------------------------------- ------------- | // PID値フロート設定値=0;フロート測定値=0;フロート出力=0;フロート積分=0;フロート導関数=0;フロートエラー=0;フロートprevious_error =0; float dt =0.1; float Kp =1.0; float Ki =0.1; float Kd =0.01; // -------------------------- ------------------------------- | void setup(){//レビテーターの初期化開始; Serial.begin(57600); Serial.println( "Levitator by JSyA"); Serial.println( "開始中..."); //デジタルピンの作業モードの設定; pinMode(digPin、OUTPUT); pinMode(addPin、INPUT_PULLUP); pinMode(subPin、INPUT_PULLUP); // timVal =millis(); setpoint =levVal; //レビテーターの初期化終了; Serial.println( "Started。");} // ------------------------------------- -------------------- | void loop()// PID {//ホールセンサーの読み取り(磁場の強さ); anaVal =analogRead(anaPin); // PID計算measured_value =anaVal;エラー=設定値-測定値;積分=積分+エラー* dt;導関数=(エラー-previous_error)/ dt;出力=(-Kp *エラー)+(-Ki *積分)+(-Kd *導関数); previous_error =エラー; //最終値の設定digVal + =output; //浮揚点の値を確認します; if(digVal <0)digVal =0; if(digVal> 255)digVal =255; //電磁石の値を増減します; //センサー値と浮上点に基づいて; analogWrite(digPin、digVal); //デバッグのログ値を表示します; // if((millis()-timVal)> 500)// {// value_log(); // timVal =millis(); //} //レビテーションポイントの値を増やします; if(digitalRead(addPin)==LOW){setpoint ++; value_log(); delay(250); } if(digitalRead(subPin)==LOW){setpoint--; value_log(); delay(250); } //電磁石の状態が変化する間の時間; delayMicroseconds(dlyVal);} // ------------------------------------------ --------------- | void value_log()//アナロジック/デジタル/レビテーション値Print; {//ホールセンサー値を表示; Serial.print( "anaVal =["); Serial.print(anaVal); Serial.print( "]-"); //電磁石の状態を表示しますOn =1 / Off =0; Serial.print( "digVal =["); Serial.print(digVal); Serial.print( "]-"); //浮上点の値を表示します; Serial.print( "setpoint =["); Serial.print(setpoint); Serial.println( "];");} // =========================================================| 

回路図

フリッツィングIDE

製造プロセス

  1. Arduinoを使用したDIYの最もシンプルなIV9Numitron時計
  2. K30センサーによるCO2モニタリング
  3. 1Sheeld / Arduinoとの盲ろう者のコミュニケーション
  4. Arduinoでコインアクセプターを制御する
  5. LEDを制御するBluetoothを搭載したArduino!
  6. ArduinoまたはESP8266を搭載した静電容量式指紋センサー
  7. Nextionディスプレイで遊ぶ
  8. Nunchuk制御ロボットアーム(Arduino付き)
  9. Arduinoの反発電磁浮上
  10. Arduinoで日射量を測定する
  11. Arduinoを搭載したミニレーダー