2017-04-07 11 views
-1

プッシュボタン付きarduino uno r3のヘルプが必要です。 pinMode、digitalWrite、digitalRead if-else、およびswitch-caseを使用せずにレジスタを使用します。Arduinoプッシュボタン

int led1=2, led2=3, led3=4, led4=5; 
int led5=8, led6=9, led7=10, led8=11; 
int button=12; 
int i,j,k; 

void setup() { 
    DDRB=DDRB|B00001111; 
    DDRD=DDRD|B00111100; 

    Serial.begin (9600); 
} 

void loop() { 
    int f=0; 
    for(int s=0;s<16;s++){ 
     int k=0; 
     int i=0b00001; 
     int j=0b0011; 
     PORTB=f; 
     f +=1; 
     if (f==64){f=0;} 
     PORTD=0; 
     for(k=0;k<7;k++){ 
      delay(250); 
      PORTD=i; 
      delay(250); 
      PORTD=j; 
      i=(i<<1); 
      j=(j<<1); 
     } 
     j=(j>>1); 
     for(int d=0; d<9; d++){ 
      delay(250); 
      PORTD=i; 
      delay(250); 
      PORTD=j; 
      i=(i>>1); 
      j=(j>>1);  
     } 
    } 
} 

これはコードです。私が必要とするのは、プッシュボタンのwhileループを作ることです。ボタンを押すとプログラムがスタートし、ボタンをもう一度押すとプログラムが停止します。

+0

「プログラム」、定義されたルーチン、またはArduinoをオン/オフにしたいことは何ですか? –

+0

定義済みのルーチンは、ポート操作を使用して – Thearnavut

答えて

0

これは2通りの方法で行うことができます。

単純なものが書いおよび/ FOMのEEPROMに直接バイトを読んでいる1

まず。プッシュボタンを押すたびに、最初にこの値を読み取り、この値を検証する必要があります。あなたのバイトが0になるようにするには、0をオフにし、1にすると、オンにします。あなたがボタンを押すと、既に保存されたバイトが0であるので、あなたは1

あなたが行っているにこれを変更する必要があるのであれば、この使用して書き込むには:この管理した後 https://www.arduino.cc/en/Tutorial/EEPROMWrite

をお読みする必要があります。このバイトは常にループ文の内側にあります。 byteが1の場合、スレッドは実行されます。 https://www.arduino.cc/en/Tutorial/EEPROMRead

セカンド

これは蚊を殺すために大砲ですが、情報の他の種類を管理するために、後で再利用することができます。

あなたはこれを使用して読み取るしようとしています。同じロジックを使用しますが、より詳細な値または複雑な値を保存します。私たちは何らかのデータベースについて話しています。

http://playground.arduino.cc/Code/DatabaseLibrary

すみませんが、私は今あなたにサンプルコードを記述することはできません。まず仕事。あなたがこの日までにこれを行うことができない場合、多分私は後で来て、あなたを助けるためにこの投稿をcomleteすることができます。

+0

をオンにします。どのようにオン/オフボタンを行うことができますか。 – Thearnavut

+0

私は理解しませんでした。プッシュボタンは状態を保持しません。一度押すと信号を送信します。あなたはこの信号で何をしようとしているのかを選択する必要があります。 https://www.arduino.cc/ja/tutorial/pushbutton –

関連する問題