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

Arduino Calculator

コンポーネントと消耗品

>
Arduino UNO
× 1
RGB LCDシールドキット、16x2文字ディスプレイ
× 1
ジャンパー線(汎用)
× 1
9Vバッテリー(汎用)
× 1
ブレッドボード(汎用)
× 1

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

このプロジェクトの最後に、Arduinoで16x2 LCDとキーパッドを使用する方法と、すぐに利用できるライブラリを使用してそれらをプログラミングするのがいかに簡単であるかがわかります。また、特定のタスクを実行するためにArduinoをプログラムする方法も理解できます。

必要な材料:

  • Arduino Uno(どのバージョンでも動作します)
  • 16×2LCDディスプレイ
  • 4×4キーパッド
  • 9Vバッテリー
  • ブレッドボードと接続ワイヤー

D0

キーボードの1番目のピン

D1

キーボードの2番目のピン

D2

キーボードの3番目のピン

D3

キーボードの4番目のピン

D4

キーボードの5番目のピン

D5

キーボードの6番目のピン

D6

キーボードの7番目のピン

D7

キーボードの8番目のピン

D8

LCDの選択ピン(ピン4)を登録します

D9

LCDのピンを有効にする(ピン6)

D10

データピン4(ピン11)

D11

データピン4(ピン11)

D12

データピン4(ピン11)

D13

データピン4(ピン11)

+ 5V

LCDのVddピン(ピン2)に接続

地面

LCDのVss、Vee、RWピン(ピン1、3、5)に接続

一部のArduinoボードでは、ピン0とピン1に接続されているものがある場合、プログラムのアップロード中にエラーが表示されることがあります。そのため、何かが発生した場合は、プログラムのアップロード中にキーパッドを取り外すだけです。

接続が完了すると、ハードウェアは次のようになります

コード

  • 無題のファイル
無題のファイル Arduino
 * * Arduinoキーパッド計算プログラム* /#include  //https://www.arduino.cc/en/Reference/LiquidCrystal#includeからのLCDのヘッダーファイル //ヘッダーhttps://github.com/Chris--A/KeypadconstバイトROWS =4からのキーパッドのファイル。 // 4行constバイトCOLS =4; // 3列//キーマップの定義keys [ROWS] [COLS] ={{'7'、 '8'、 '9'、 'D'}、{'4'、 '5'、 '6'、 ' C '}、{' 1 '、' 2 '、' 3 '、' B '}、{' * '、' 0 '、'# '、' A '}}; byte rowPins [ROWS] ={0、 1、2、3}; //キーパッドROW0、ROW1、ROW2、およびROW3をこれらのArduinoピンに接続します。bytecolPins[COLS] ={4、5、6、7}; //キーパッドCOL0、COL1、およびCOL2をこれらのArduinoピンに接続します。Keypadkpd=Keypad(makeKeymap(keys)、rowPins、colPins、ROWS、COLS); // Keypadconstを作成しますintrs =8、en =9、d4 =10、d5 =11、d6 =12、d7 =13; // LCDが接続されているピンLiquidCrystallcd(rs、en、d4、d5、d6、d7); long Num1、Num2、Number; char key、action;ブール結果=false; void setup(){lcd.begin(16、2); // 16 * 2 LCDディスプレイを使用していますlcd.print( "DIY Calculator"); //イントロメッセージを表示しますlcd.setCursor(0、1); //カーソルを列0、行1に設定しますlcd.print( "-CircuitDigest"); //イントロメッセージdelay(2000);を表示します//情報が表示されるのを待ちますlcd.clear(); //次にクリーンアップします} void loop(){key =kpd.getKey(); //押されたキー値をcharifに格納します(key!=NO_KEY)DetectButtons(); if(result ==true)CalculateResult(); DisplayResult(); } void DetectButtons(){lcd.clear(); //次に、それをクリーンアップしますif(key =='*')//キャンセルボタンが押された場合{Serial.println( "Button Cancel"); Number =Num1 =Num2 =0; result =false;} if(key =='1')//ボタン1が押された場合{Serial.println( "Button 1"); if(Number ==0)Number =1;それ以外の場合、数値=(数値* 10)+ 1; // 2回押された} if(key =='4')//ボタン4が押された場合{Serial.println( "Button 4"); if(Number ==0)Number =4;それ以外の場合、数値=(数値* 10)+ 4; // 2回押された} if(key =='7')//ボタン7が押された場合{Serial.println( "Button 7"); if(Number ==0)Number =7;それ以外の場合、数値=(数値* 10)+ 7; // 2回押された} if(key =='0'){Serial.println( "Button 0"); //ボタン0が押された場合(Number ==0)Number =0;それ以外の場合、数値=(数値* 10)+ 0; // 2回押された} if(key =='2')//ボタン2が押された{Serial.println( "Button 2"); if(Number ==0)Number =2;それ以外の場合、数値=(数値* 10)+ 2; // 2回押された} if(key =='5'){Serial.println( "Button 5"); if(Number ==0)Number =5;それ以外の場合、数値=(数値* 10)+ 5; // 2回押された} if(key =='8'){Serial.println( "Button 8"); if(Number ==0)Number =8;それ以外の場合、数値=(数値* 10)+ 8; // 2回押された} if(key =='#'){Serial.println( "Button Equal"); Num2 =数値;結果=true; } if(key =='3'){Serial.println( "ボタン3"); if(Number ==0)Number =3;それ以外の場合、数値=(数値* 10)+ 3; // 2回押された} if(key =='6'){Serial.println( "Button 6"); if(Number ==0)Number =6;それ以外の場合、数値=(数値* 10)+ 6; // 2回押された} if(key =='9'){Serial.println( "Button 9"); if(Number ==0)Number =9;それ以外の場合、数値=(数値* 10)+ 9; // 2回押された} if(key =='A' || key =='B' || key =='C' || key =='D')//列4のボタンの検出{Num1 =Number;数=0; if(key =='A'){Serial.println( "Addition"); action ='+';} if(key =='B'){Serial.println( "減算");アクション='-'; } if(key =='C'){Serial.println( "乗算"); action ='*';} if(key =='D'){Serial.println( "Devesion"); action ='/';} delay(100); }} voidCalculateResult(){if(action =='+')Number =Num1 + Num2; if(action =='-')Number =Num1-Num2; if(action =='*')Number =Num1 * Num2; if(action =='/')Number =Num1 / Num2; } void DisplayResult(){lcd.setCursor(0、0); //カーソルを列0、行1に設定しますlcd.print(Num1); lcd.print(action); lcd.print(Num2); if(result ==true){lcd.print( "="); lcd.print(Number);} //結果を表示しますlcd.setCursor(0、1); //カーソルを列0、行1に設定しますlcd.print(Number); //結果を表示します} 

回路図


製造プロセス

  1. 麺棒
  2. ボウリングピン
  3. Arduinoキーボードエクスプロイトデモ(HID)と防止
  4. Arduinoを介したAtmelAT89シリーズのプログラミング
  5. Arduino Spybot
  6. Arduinoを使用したRCレシーバーPPM信号の読み取り
  7. FlickMote
  8. 自家製テレビB-Gone
  9. マスタークロック
  10. Arduino + LED + MIDIキーボード+ MuseScore =ピアノチューター
  11. ArduinoUnoを使用した25kHz4ピンPWMファン制御