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

洗濯機タイマー

コンポーネントと消耗品

>
SparkFun Arduino Pro Mini 328-5V / 16MHz
× 1
1306OLEDディスプレイ
× 1
DFRobot Gravity:Digital Push Button(Yellow)
× 2
SeedGrove-2チャンネルSPDTリレー
× 1
Digilent 5V 2.5A Switching Power Supply
× 1
SparkFun USBUARTシリアルブレイクアウト-CY7C65213
× 1
HC-05Bluetoothモジュール
× 1

必要なツールとマシン

>
はんだごて(汎用)
ホットグルーガン(汎用)
テープ、両面
テープ、緑

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

>
Arduino IDE

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

はじめに

これは私が持っている洗濯機の交換部品で、洗濯タイマーが壊れています。元のタイマーは機械式タイマー/方向スイッチで、次の方法で洗濯槽のモーターを制御できます。

  • ユーザーからの洗浄時間の入力をx分行います
  • 洗濯槽のモーターを時計回りに数秒間回転させます
  • モーターを数秒間停止します
  • 洗濯槽のモーターを反時計回りに数秒間回転させます
  • モーターを数秒間停止します
  • 洗浄タイマーが切れるまで最後の4つのステップを続けます

同じ操作ができる電子タイマーを作ります。

デモ

次のビデオは、この電子タイマーの動作を示しています:

ハードウェア

  • Arduino Pro Mini: コードを実行し、すべてを制御します
  • 1306 OLED: ユーザーの指示とタイマーのカウントダウンを表示する
  • 赤/黒のプッシュボタン: タイマーを設定してタイマーを開始する
  • 5Vリレーモジュール: モーターにAC電源を供給し、方向を制御します
  • 5Vアダプター: 電子タイマーに電力を供給します

1306 OLEDは、次のようにプロミニに直接はんだ付けされています:

<図>

2つのリレーモジュール、2つのプッシュボタン、Arduino Pro Mini + 1306OLEDはこのようにプロトボードに接続されています-

<図> <図>

プログラミング

ステップ1: HC-05 Bluetooth-Serialモジュールを入手し、このチュートリアルまたはこの手順に従って、ボーレートを57600に変更します。この手順を実行するには、別のArduinoUnoまたはUSBtoSerialモジュールが必要になります。

次のATコマンドを使用します

  AT 
AT + UART =57600,0,0
AT + RESET

ステップ2: ボーレートを57600に変更したら、次の配線図に従ってHC-05をArduino prominiに接続します

<図>

ステップ3: Arduino IDEからボードを選択し、コードを貼り付けて[アップロード]をクリックします。

<図>

Bluetoothシリアルを使用しているのは、システムフィールドでワイヤレスでプログラム可能な機能を有効にし、必要に応じてprominiのコードを更新するのに役立ったためです。

配線とデバイスの操作の説明

洗濯機の機種によって配線が異なる場合がありますので、説明します。右下隅の「シャープ」図に注意してください。1本の白線がメインから出て洗浄タイマーに接続され、1本の赤線と1本の青線が洗浄タイマーから出ています。これらの3本のワイヤーを元の(故障した)洗濯タイマーから外し、洗濯機の上部にある穴から引き出しました。

<図> <図>

WHITEWIREに切り替えるとREDWIREモーターは時計回りに回転し、WHITEWIREに切り替えるとBLUEWIREモーターは反時計回りに回転します。

Arduino pro miniで作られたこの電子タイマーは、洗浄時間を追跡し、1つのリレー接点を介して白と赤のワイヤーを接続することにより、洗浄タブのモーターを一方向に5秒間回転させます。その後、モーターを停止し、5秒間待機します。その後、もう一方のリレー接点を介して白と青のワイヤーを接続することにより、タブのモーターを反対方向に5秒間回転させます。その後、停止し、さらに5秒間待機します。これらのタイミングシーケンスはすべて、必要に応じてコードから変更できます。

次の図は、AC入力主電源をモーターのコンデンサーの一方の脚またはもう一方の脚に切り替えるだけで、ACモーターの方向を変更できることを示しています。

<図>

単相誘導電動機理論

参考資料

これらのチュートリアルで、各コンポーネントの詳細を学ぶことができます:

  • リレーチュートリアル
  • ボタンチュートリアル

免責事項!

このプロジェクトはAC主電源の供給を扱っており、自己責任で行ってください

コード

  • 無題のファイル
無題のファイル C / C ++
 #include "U8glib.h" // SSD1306 oled waveshare(clk、din、cs、d / c、res); U8GLIB_SSD1306_128X64 u8g(A4、A5,12,11,10); volatile int rbc =0; volatile int bbc =0; int sec =0; int mi =0; int motor_rotation =0; void setup(){u8g.setRot180(); analogReference(INTERNAL); pinMode(2、INPUT_PULLUP); pinMode(3、INPUT_PULLUP); attachInterrupt(0、ISR_SW_RED、FALLING); attachInterrupt(1、ISR_SW_BLACK、FALLING); pinMode(5、OUTPUT); digitalWrite(5、LOW); pinMode(4、OUTPUT); digitalWrite(4、LOW);} void loop(void){while(!rbc){//タイマーセットメニューを表示u8g.firstPage(); do {draw_menu(); } while(u8g.nextPage()); //ユーザーに適切な操作メッセージを表示するif(rbc> 0 &&bbc ==0){u8g.firstPage(); do {draw_message(); } while(u8g.nextPage()); delay(2000); rbc =0; //u8g.clear(); }} //タイマーを開始if(rbc> 0){sec =59; mi =bbc-1; while(mi> =0){//カウントダウンタイマーメッセージを表示unsigned long temp =millis()+ 1000; while(temp>
 =millis()){u8g.firstPage(); do {draw_timer(); } while(u8g.nextPage()); } sec =sec-1; if(sec%5 ==0){control_motor(); // 5秒ごとに呼び出す} if(sec <=0){sec =59; mi =mi-1; }} rbc =0; bbc =0; mi =0;秒=0; digitalWrite(5、LOW); digitalWrite(6、LOW); }} //ループの終わりvoiddraw_menu(void){u8g.setFont(u8g_font_timB24); if(bbc <10){u8g.drawStr(22,30、 "0"); u8g.setPrintPos(38,30); u8g.print(bbc); } else {u8g.setPrintPos(22,30); u8g.print(bbc); } u8g.drawStr(54,30、 ":00"); u8g.setFont(u8g_font_8x13); u8g.drawStr(0,62、 "'洗濯タイマー'"); u8g.setFont(u8g_font_5x8); u8g.drawStr(0,47、 "赤:開始黒:設定時間"); } void draw_message(void){u8g.setFont(u8g_font_8x13); u8g.drawStr(0,10、 "SET WASH TIMER"); u8g.drawStr(0,23、 "FIRST BY PUSHING"); u8g.drawStr(0,36、 "THE BLACK BUTTON"); // u8g.setFont(u8g_font_8x13); u8g.drawStr(0,62、 "'洗濯タイマー'"); u8g.setFont(u8g_font_5x8); u8g.drawStr(0,47、 "赤:開始黒:設定時間"); } void draw_timer(void){u8g.setFont(u8g_font_timB24); if(mi <10){u8g.drawStr(22,30、 "0"); u8g.setPrintPos(38,30); u8g.print(mi); } else {u8g.setPrintPos(22,30); u8g.print(mi); } u8g.drawStr(54,30、 ":"); if(sec <10){u8g.drawStr(70,30、 "0"); u8g.setPrintPos(86,30); u8g.print(sec); } else {u8g.setPrintPos(70,30); u8g.print(sec); } if(motor_rotation ==0){u8g.setFont(u8g_font_5x8); u8g.drawStr(0,47、 "WASHING MOTOR CW Spin"); digitalWrite(5、HIGH); } if(motor_rotation ==1){u8g.setFont(u8g_font_5x8); u8g.drawStr(0,47、 "WASHING MOTOR STOPPED"); digitalWrite(5、LOW); digitalWrite(4、LOW); } if(motor_rotation ==2){u8g.setFont(u8g_font_5x8); u8g.drawStr(0,47、 "WASHING MOTOR CCW Spin"); digitalWrite(4、HIGH); } if(motor_rotation ==3){u8g.setFont(u8g_font_5x8); u8g.drawStr(0,47、 "WASHING MOTOR STOPPED"); digitalWrite(5、LOW); digitalWrite(4、LOW); } u8g.setFont(u8g_font_8x13); u8g.drawStr(0,62、 "'洗濯タイマー'"); } void ISR_SW_RED(){sei(); rbc ++; cli();} void ISR_SW_BLACK(){sei(); bbc ++; cli();} void control_motor(){motor_rotation ++; if(motor_rotation> 3){motor_rotation =0; }} 

回路図


製造プロセス

  1. EEGマシン
  2. 自動販売機
  3. 投票機
  4. 両替機
  5. EKGマシン
  6. ミシン
  7. 搾乳機
  8. パンスト
  9. 旋盤の部品
  10. 旋盤を理解する
  11. フライス盤の部品