Circuito.ioによる聖パトリックの日のチャグメーター
コンポーネントと消耗品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
アイデア
一度だけ解決しましょう -すべての中で最速のチャガーは誰ですか?
聖パトリックの日がここにあり、仕事でビールを飲む良い言い訳になりました。このお祭りの機会のために、私たちはあなたに与えます:チャグ メーター 。今、私たちは一度だけ解決することができます-すべての中で最速のチャガーは誰ですか?
*責任を持って飲む*
まず、後に飲み始めることをお勧めします あなたはカウンターを作ります。当たり前のように思えるかもしれませんが、ここで確認しているだけです。
回路の組み立て方法
私たちはここであなたを楽にしました。回路は非常に単純です:
- FSR (力感知抵抗器)
- 押しボタン
- ピエゾスピーカー
- 7セグメントディスプレイ
魔法のリンク 事前に選択されたコンポーネントが表示されるcircuito.ioにリダイレクトされます。
<図>
変更
いつものように、あなたは電子機器を変えることができます。ここにいくつかの例があります:
- 7セグメントをLCD画面に置き換えます
- FSRをIRダイオードに交換します
- 回路にRGBLEDを追加する
そして基本的にはワイルドになりましょう-それは聖パトリックの日です!
生成をクリックした後 返信の3つの部分を確認してください: BoM 、ステップバイステップの配線ガイド およびコード 。指示に注意深く従って、助けが必要な場合は以下にコメントしてお知らせください。
次のステップ
すべてが稼働したら、次のことを行う必要があります。
- circuito.ioの返信で取得したサンプルコードを、このチュートリアルで添付されているコードに置き換えます 。コードをコピーしてファームウェアに貼り付けます Circuito.ioのサンプルコードのタブ。このように、すべてのコンポーネントライブラリはそのまま残り、メイン関数のみが変更されます。
- FSRをテープで留める (フォースセンシティブレジスター)ビールコースターの下。力が解放されると(=パイントが持ち上げられると)、カウンターが動き始めます。パイントがコースターに戻されると、タイマーが停止し、ボタンでリセットできます。
- 7セグメントケースを3Dプリントします。
- 飲み始めます。
楽しいセント・パトリック・デイを過ごしてね!責任を持って飲んでください!
コード
- チャグメーターのコード
チャグメーターのコード Arduino
Circuito.ioから取得したコードのセットアップ関数とループ関数を次のコードに置き換えますint start_flag =0; bool glassState =0; long finalTime、time0; int timer; / *このコードは、動作する回路。回路に電気が供給されるたびに最初に実行されます。 * / void setup(){//デバッグに役立つシリアルのセットアップ//シリアルモニターを使用して、印刷されたメッセージを表示しますSerial.begin(9600); Serial.println( "start"); pushButton.init(); s7s.clearDisplay(); //表示をクリアし、カーソルをリセットしますs7s.setBrightness(255); //高輝度s7s.setDecimals(0b00010000); //コロンとアポストロフィを設定します。参照については.cppファイルを参照してくださいs7s.writeInt(0);} / *このコードは回路のメインロジックです。選択したコンポーネント間の相互作用を定義します。セットアップ後、それは永遠のループで何度も何度も実行されます。 * / void loop(){// FSR抵抗値を読み取ります。 fsr.getResistance()も試してください//詳細については、SparkfunのWebサイトを参照してください-www.sparkfun.com/products/9375 // FSR計算のデフォルトのVccおよび外部抵抗値は、そうでない場合は5V ang3300Okmです。回路でこれらのデフォルト値を使用するには、FSR.cppに移動し、FSRコンストラクターのデフォルト値を変更します。floatfsrForce=fsr.getForce(); //Serial.print(F("Force: ")); Serial.print(fsrForce); Serial.println(F( "[g]")); //プッシュボタンの状態を読み取ります。 //ボタンが押されていない場合、関数はLOW(0)を返します。プッシュされると、関数はHIGH(1)を返します。 //デバウンスが正しく機能しない場合は、Button.hの 'debounceDelay'変数を変更してみてください//デバウンスのためにpushButton.onPress()、. onRelease()、および.onChange()も試してください。 bool pushButtonVal =pushButton.onPress(); //Serial.print(F("Val: ")); Serial.println(pushButtonVal); //プッシュボタンを使用して時間をリセットif(pushButtonVal ==1){start_flag =0; glassState =0; //タイマーを開始しますs7s.writeInt(0); time0 =ミリ秒(); } //時間状態を設定if(start_flag ==0){//ギャルが配置されている場合if(fsrForce> 50){glassState =1; //タイマーを開始しますs7s.writeInt(0); time0 =ミリ秒(); } //グラスがピックアップされた場合elseif(fsrForce <50 &&glassState){finalTime =millis()-time0; start_flag =1; }} //グラスが選ばれた、タイマーを実行するelse if(start_flag ==1){//飲んでいる間、7セグメントディスプレイに時間を表示するif(fsrForce <100){finalTime =(millis() --time0)/ 10; s7s.writeInt(finalTime); } //飲酒を終了し、タイマーを停止し、最終時間を印刷し、フーレイサウンドを再生しますelse {start_flag =2; finalTime =(millis()-time0)/ 10; s7s.writeInt(finalTime); piezoSpeaker.playMelody(piezoSpeakerHoorayLength、piezoSpeakerHoorayMelody、piezoSpeakerHoorayNoteDurations); delay(500); }} //リセットボタンが押されるまで常に最終時間を出力しますelse {s7s.writeInt(finalTime); }}
製造プロセス