編集履歴一覧に戻る
ProjectSRのアイコン画像

ProjectSR が 2025年04月27日19時49分35秒 に編集

コメント無し

本文の変更

🔳概要・基本構成 --- ①ホームセンターにあるフライパンとカセットコンロを使用  アルミフレームはNICオートテックより購入  電子工作でおなじみArduinoを使用 ②上記①を組み合わせて、加熱調理ロボット的な装置を構成 ③今回は試しにお米を炊いてみる 🔳解説 --- Youtube解説動画 @[youtube](https://www.youtube.com/watch?v=uPTTTmqnIbE) ニコニコ動画解説 https://www.nicovideo.jp/watch/sm44920465 ポイント --- ●Arduinoでカセットコンロの火力制御 ●フライパンも使って、半自動加熱調理 今回はお米  火力調整は、点火、中火、弱火、消火を時間計測で切り分け ●カセットコンロは改造せず、ハンドルに外付けの回転・点火機構を搭載 ●ハンドルの回転位置を、可変抵抗で読み取り ●9V乾電池を使用 リチウムイオンバッテリーは不使用(火を使うのでなるべく使用避けたい) 特殊な機材は不要で、ホームセンターで売られているものでも使用できます。 1⃣本体ハード

+

---

本体の外観はこのようになっています アルミフレームはNIOCオートテックから購入 ジョイントアングル材もNICで購入可能ですが、3Dプリンターで造形してコストを抑えています ![キャプションを入力できます](https://camo.elchika.com/ddcdd410e2d0a36224b25efbfa4a225ef1e0d284/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65636165613738332d303336612d346532652d383632662d3732393461656431353662352f37383533626639652d386539362d343331642d383030612d646261666364306530623437/) ギアボックス構成 モータ~可変抵抗 ![キャプションを入力できます](https://camo.elchika.com/4cb20233192baa74ea04674ab9932b12ed0e8e74/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65636165613738332d303336612d346532652d383632662d3732393461656431353662352f30373333353137662d393363662d343664652d613636372d383561653863313661393535/) ギアボックス 可変抵抗~カセットコンロハンドル 可変抵抗とハンドルは同軸上に配置されています。 可変抵抗は秋月電子にて販売されています これで、回転位置を読み取り、火力調整が可能になります ![キャプションを入力できます](https://camo.elchika.com/a445cca20ed4e9dbdb92570cfb0d1d0aff110f35/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65636165613738332d303336612d346532652d383632662d3732393461656431353662352f38303262666130632d373639312d343839642d383434332d396133303133366233393933/) 2⃣電気電子回路

+

---

外観はこのようになっています ![キャプションを入力できます](https://camo.elchika.com/ae3bc6860dcfbe431446bb0e2ec7263582c16ab4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65636165613738332d303336612d346532652d383632662d3732393461656431353662352f30306230346438392d386233642d343931652d393336652d383565663035653732333430/) ただこれだとどうつながっているか全くわからないと思うので、簡易的な回路図がこちらになります (クリック推奨です) ![キャプションを入力できます](https://camo.elchika.com/1e1bc29dab767da0ca9e62f2d7169560d7e30ddb/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65636165613738332d303336612d346532652d383632662d3732393461656431353662352f62353339663430332d373464332d346263302d396631392d393361643539373733643062/) モータドライバーはMDD3Aという、タクトスイッチが搭載されたものを使用しています。 これで、Arduinoを接続しなくても、電力を供給していれば、タクトスイッチを押して モータを回転させ、火力調整の事前確認であったり、 コンロでトラブルがあった際に、Arduinoの電源を切って、モータドライバーのスイッチを押して コンロのハンドルを消火位置まで回転できます(配線が生きていればですが・・・) 3⃣プログラム --- ```html const int INPUT_PIN = A1; int pin3 = 3; int pin5 = 5; int VOLUME; int timec; enum State { IDLE, IGNITION, ADJUST_FIRE, COOKINGS, COOKINGF, FINISHED }; State currentState = IDLE; unsigned long stateStartTime = 0; void setup() { Serial.begin(9600); pinMode(pin3,OUTPUT); pinMode(pin5,OUTPUT); } void loop() { unsigned long currentMillis = millis(); VOLUME = analogRead(INPUT_PIN); // アナログ値の読み取り int angle = map(VOLUME,0,1023,0,180); Serial.print("angle: "); // シリアルモニタに出力 Serial.println(angle); Serial.print("モード: "); // シリアルモニタに出力 Serial.println(currentState); switch (currentState) { case IDLE: Serial.println("待機中..."); if (digitalRead(12) == LOW) { // スイッチが押されたら開始 analogWrite(pin3,0); analogWrite(pin5,0); currentState = IGNITION; } break; case IGNITION: if(angle>135){ Serial.print("ハンドル回転"); Serial.println(angle); analogWrite(pin3,0); analogWrite(pin5,100); stateStartTime = currentMillis; } else{ Serial.println("点火中..."); Serial.println(angle); analogWrite(pin3,0); analogWrite(pin5,0); if ((currentMillis - stateStartTime)/1000 >= 3) { // 3秒経過 Serial.println("点火完了"); currentState = ADJUST_FIRE; } } break; case ADJUST_FIRE: if(angle<163){ Serial.println("火力中火調整モード"); Serial.println(angle); analogWrite(pin3,100); analogWrite(pin5,0); stateStartTime = currentMillis; } else{ Serial.println("中火維持 調理中"); Serial.println(angle); analogWrite(pin3,0); analogWrite(pin5,0); if ((currentMillis - stateStartTime)/1000 >= 240) { Serial.println("中火終了"); currentState = COOKINGS; } } break; case COOKINGS: if(angle<166){ Serial.println("火力弱火調整モード"); Serial.println(angle); analogWrite(pin3,100); analogWrite(pin5,0); stateStartTime = currentMillis; } else{ Serial.println("弱火維持 調理中"); Serial.println(angle); analogWrite(pin3,0); analogWrite(pin5,0); if ((currentMillis - stateStartTime)/1000 >= 300) { Serial.println("弱火終了"); currentState = COOKINGF; } } break; case COOKINGF: if(angle<174){ Serial.println("消火開始"); analogWrite(pin3,100); analogWrite(pin5,0); } else{ analogWrite(pin3,0); analogWrite(pin5,0); Serial.println("消火完了"); currentState = FINISHED; } break; case FINISHED: analogWrite(pin3,0); analogWrite(pin5,0); Serial.println("炊飯完了!"); while (true); // 停止 break; } delay(100); } ``` もし何かご質問がありましたら、コメントをください |部品名|購入先| |---|---|---| |Arduino uno|秋月電子通商orマルツパーツor千石電商| |可変抵抗|秋月電子通商orマルツパーツor千石電商| |マイクロスライドスイッチ|アマゾン| |Arduinoシールド|アマゾン| |配線|ホームセンタ| |9V乾電池|ホームセンター| |カセットコンロ|ホームセンタ| |フライパン|ホームセンター| |アルミフレーム|NICオートテック|