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

862D +用のDIYはんだごて制御

コンポーネントと消耗品

>
Arduino Nano R3
× 1
通常のフライバックダイオード。
× 1
irf540nnチャネルMOSFET
× 1
5vリニアレギュレータ
× 1
抵抗330オーム
× 1
ピンヘッダー(男性)
× 2
.96インチOled
× 1

必要なツールとマシン

>
はんだごて(汎用)
8mmドリルビット/ wドリル

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

アップデート(2019年10月21日):コードのメジャーアップデート。以下もお読みください。少し変更されました。

862D +のはんだごてが壊れたので、新しいはんだごてを購入する代わりに、2つ目のはんだごてを取り直しました。最も難しい部分は、オンラインの他の場所に解決策がなかったことです。アイロンを交換した後もS-Eまたはセンサーエラーが表示されたため、PCBが破損しました。

<図>

そこで、自分でコントローラー回路を作って、中に詰め込むことにしました。 2つ目の変圧器が必要でしたが、安価で、中には十分なスペースがありました。

<図>

<図>

見た目は良くないかもしれませんが、魅力のように機能します。ボーナスとして、はんだごての電源ボタンを取り外し、5vとarduinoの間に追加しました。

ビルドのヒントについて:

すべての部品を今すぐ購入できます。 LCSCはバルクエレクトロニクスサイトです。アメリカへの輸送は高価ですが、部品は途方もなく安いです。

AmazonのEXMOSFETは$ 6ですが、LCSCのMOSFETは32セントです。ただし、抵抗器などはまとめて購入する必要があります。それでも、50個の抵抗器は文字通り0.84セントです。

接地されたアルミホイルまたは他のもので長いデータワイヤをシールドすることを確認してください。たとえば、12cスクリーンワイヤー。

コード内:

1023最も冷たい0溶岩。 settempを希望に合わせて変更します。通常は約600です。

はんだごてコントローラーは、こてが接続されているか壊れているかを検出できます。はんだごてが切断されている場合、arduinoはアナログ入力をゼロにします。はんだごてが適切に加熱されていたが、現在は加熱されていない場合:はんだごてを外し、こてを差し込むと表示されるまで待ちます。 (これは私にとって問題でした)

今、あなたはあなたの鉄の基本を知っています。これは、高品質のはんだごてを購入する代わりの安価な方法です。より高品質のアイロンがありますが、これは非常に安価でDIYです。

コード

  • 制御コード
  • コード
  • コードは2019年10月21日に更新されました
制御コード C / C ++
これをarduinoに貼り付けてアップロードします。これは、提供された回路でのみ機能します
 int output =0; int temp =0; int settemp =630; String inputString =""; //受信データを保持する文字列booleanrap =false; boolean stringComplete =false; //文字列が完全かどうかintt =0; void setup(){Serial.begin(9600); inputString.reserve(200); pinMode(6、OUTPUT); digitalWrite(6、LOW);} void loop(){serialEvent(); if(stringComplete){Serial.println(inputString); t =inputString.toInt(); // settemp =t //設定温度をシリアル入力に設定しますinputString =""; stringComplete =false; } 急速(); pid();} void Rapid(){//最初にはんだごてを急速に加熱して制御します。 if(rap ==false){digitalWrite(6、HIGH); do {temp =analogRead(0); Serial.print( "rapid"); Serial.println(temp); } while(temp --settemp>
 10); digitalWrite(6、LOW); rap =true; }} void pid(){//低速の有効電力加熱ではんだ付けを制御します。 temp =analogRead(0);出力=temp-settemp; if(output <0){output =0; } if(output> 255){output =255; } Serial.print( "pid"); Serial.print(temp); Serial.print( "、"); Serial.println(出力); analogWrite(6、output);} void serialEvent(){// settempを更新するために使用できるシリアル通信while(Serial.available()){char inChar =(char)Serial.read(); inputString + =inChar; if(inChar =='\ n'){stringComplete =true; }}} 
コード C / C ++
エディターに貼り付けてアップロードします。設計された回路図面でのみ機能します。
 #include  #include  #include  #define OLED_ADDR 0x3CAdafruit_SSD1306 display(-1); int settemp =590; //手動で変数を設定intoutput =0; int temp =0; String inputString =""; boolean rap =false; boolean stringComplete =false; int t =0; int mappingpower =0; byte powermultiply =0; long counter =0; int temp2 =0; byte outputoffset =0; byte scaleread =0; void setup(){Serial.begin(9600); pinMode(12、OUTPUT); digitalWrite(12、LOW); display.begin(SSD1306_SWITCHCAPVCC、OLED_ADDR); display.clearDisplay(); display.display(); Rapid();} void loop(){pid(); display.clearDisplay(); updatebar(); updatetext(); display.display();} void Rapid(){//はんだごてを最初に急速に加熱することにより、はんだごてを制御します。 if(rap ==false){digitalWrite(12、HIGH);出力=255; do {temp =analogRead(0); Serial.print( "rapid"); Serial.println(temp); display.clearDisplay(); updatebar(); updatetext(); display.display(); } while(temp --settemp>
 1); digitalWrite(12、LOW); rap =true; }} void pid(){//低速の有効電力加熱ではんだ付けを制御します。 temp =analogRead(0); //温度平均値temp2 =temp; delay(50); temp =analogRead(0); temp =temp + temp2; temp =temp / 2;ゼロスケール; //はんだごてチェッカーをアクティブにしないtemp =temp + outputoffset;出力=temp-settemp;出力=出力+ powermultiply;出力=出力* 4; if(output <0){output =0; } if(output> 255){output =255; }カウンター=カウンター+1; if(counter> 10){counter =0; if(temp>
 settemp + 3){powermultiply =powermultiply + 1; } if(temp  0){powermultiply =powermultiply-1; }} Serial.print(powermultiply); Serial.print( "、"); Serial.print(temp); Serial.print( "、"); Serial.println(出力); analogWrite(12、output);} void updatebar(){// OLEDディスプレイのパワーバーを更新mappedpower =map(output、0、255、0、127)-10; display.fillRect(0、0、mappedpower、8、WHITE); display.fillRoundRect(mappedpower-5、0、20、8、3、WHITE);} void updatetext(){// Oledディスプレイのテキストを更新するdisplay.setCursor(0、9); display.setTextColor(WHITE); display.setTextSize(1); display.print( "Set Temp:"); display.print(settemp); display.setCursor(0、20); display.print( "Temp:"); display.print(temp);} void zeroscale(){//はんだごてが接続されていない場合は、入力ピンの値を調整してゼロにしますif(output <200){display.clearDisplay(); display.setCursor(0、9); display.setTextColor(WHITE); display.setTextSize(1); display.print( "はんだごてがない、または欠陥がある"); display.setCursor(0、15); display.print( "iron。"); display.setCursor(0、20); display.print( "5秒でテストしています。"); display.display(); delay(5000); if(output <200){outputoffset =temp; } display.clearDisplay(); display.setCursor(0、9); display.setTextColor(WHITE); display.setTextSize(1); display.print( "出力オフセットセット。"); display.setCursor(0、20); display.print( "アイロンを差し込んでください。"); display.display(); do {scaleread =analogRead(0); } while(scaleread <200); }} 
コードは2019年10月21日に更新されました C / C ++
IDEに貼り付けてアップロードします。 shematicでのみ機能します。
 #include  #include  #include  #define OLED_ADDR 0x3CAdafruit_SSD1306 display(-1); int settemp =590; //手動で変数を設定intoutput =0; int temp =0; String inputString =""; boolean rap =false; boolean stringComplete =false; int t =0; int mappingpower =0; byte powermultiply =0; long counter =0; int temp2 =0; byte outputoffset =0; byte scaleread =0; void setup(){Serial.begin(9600); pinMode(12、OUTPUT); digitalWrite(12、LOW); display.begin(SSD1306_SWITCHCAPVCC、OLED_ADDR); display.clearDisplay(); display.display(); Rapid();} void loop(){pid(); display.clearDisplay(); updatebar(); updatetext(); display.display();} void Rapid(){//はんだごてを最初に急速に加熱することにより、はんだごてを制御します。 if(rap ==false){digitalWrite(12、HIGH);出力=255; do {temp =analogRead(0); Serial.print( "rapid"); Serial.println(temp); display.clearDisplay(); updatebar(); updatetext(); display.display(); } while(temp --settemp>
 1); digitalWrite(12、LOW); rap =true; }} void pid(){//低速の有効電力加熱ではんだ付けを制御します。 temp =analogRead(0); //温度平均値temp2 =temp; delay(50); temp =analogRead(0); temp =temp + temp2; temp =temp / 2; zeroscale(); //はんだごてチェッカーをアクティブにしないtemp =temp + outputoffset;出力=temp-settemp;出力=出力+ powermultiply;出力=出力* 4; if(output <0){output =0; } if(output> 255){output =255; }カウンター=カウンター+1; if(counter> 10){counter =0; if(temp>
 settemp + 3){powermultiply =powermultiply + 1; } if(temp  0){powermultiply =powermultiply-1; }} Serial.print(powermultiply); Serial.print( "、"); Serial.print(temp); Serial.print( "、"); Serial.println(出力); analogWrite(12、output);} void updatebar(){// OLEDディスプレイのパワーバーを更新mappedpower =map(output、0、255、0、127)-10; display.fillRect(0、0、mappedpower、8、WHITE); display.fillRoundRect(mappedpower-5、0、20、8、3、WHITE);} void updatetext(){// Oledディスプレイのテキストを更新するdisplay.setCursor(0、9); display.setTextColor(WHITE); display.setTextSize(1); display.print( "Set Temp:"); display.print(settemp); display.setCursor(0、20); display.print( "Temp:"); display.print(temp);} void zeroscale(){//はんだごてが外れている場合は、入力ピンの値を調整してゼロにしますif(temp <200){display.clearDisplay(); display.setCursor(0、20); display.setTextColor(WHITE); display.setTextSize(1); display.print( "はんだごてなし。"); display.display(); delay(10000); display.setCursor(0、0); display.print( "5秒でテストしています。"); display.display(); delay(5000); if(temp <200){outputoffset =temp; } display.clearDisplay(); display.setCursor(0、20); display.setTextColor(WHITE); display.setTextSize(1); display.print( "出力オフセットセット。"); display.setCursor(0、0); display.print( "アイロンを接続します。"); display.display(); do {scaleread =analogRead(0); } while(scaleread <200); }} 

回路図

この回路図を使用して、鉄の回路を作成します

製造プロセス

  1. マルチ温度センサー
  2. DIY 37LEDルーレットゲーム
  3. MotionSense
  4. 3Dプリンターの火災安全
  5. デジタルオルガンのためのMIDI
  6. Arduinoの反発電磁浮上
  7. リモコングリッパーボット
  8. マイクロコントローラーラボ
  9. Persistence of Vision(POV)Globe
  10. サントラッキングソーラーシステム
  11. CoroFence-熱検出器🖖