Acro02b: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 1: | Riadok 1: | ||
Príklad na pripojenie a prečítanie tlačítka. | |||
<source lang="cpp"> | <source lang="cpp"> | ||
#define redLED 2 // LED connected to digital pin 2 | #define redLED 2 // LED connected to digital pin 2 | ||
Riadok 30: | Riadok 32: | ||
} | } | ||
</source> | </source> | ||
Príklad na stavový diagram. Sú 4 stavy, prechody sú riešené tlačítkom. Prepracovať, | |||
treba aby boli rôzne prechody a potom viditeľne v programe oddeliť prechodové a stavové | |||
riadky. | |||
<source lang="c"> | |||
#define redLED 2 // LED connected to digital pin 2 | |||
#define greenLED 3 // LED connected to digital pin 3 | |||
#define button 7 // SW 1 connected to D7 | |||
int state=0; | |||
void setup() { | |||
// initialize the digital pins as an outputs: | |||
pinMode( redLED, OUTPUT); | |||
pinMode(greenLED, OUTPUT); | |||
pinMode( button, INPUT); | |||
// !!! Bez tohoto obyc. tlacitko na zem nefunguje!!! | |||
digitalWrite( button, HIGH); // pull-up ON | |||
Serial.begin(9600); | |||
} | |||
void loop() | |||
{ | |||
if ( state>3 ) state=0; | |||
Serial.print("State = "); | |||
Serial.println(state, DEC); | |||
switch (state) { | |||
case 0: | |||
digitalWrite( redLED, LOW); // set the LED on | |||
digitalWrite(greenLED, LOW); // set the LED off | |||
break; | |||
case 1: | |||
digitalWrite( redLED, HIGH); // set the LED on | |||
digitalWrite(greenLED, LOW); // set the LED off | |||
break; | |||
case 2: | |||
digitalWrite( redLED, LOW); // set the LED on | |||
digitalWrite(greenLED, HIGH); // set the LED off | |||
break; | |||
case 3: | |||
digitalWrite( redLED, HIGH); // set the LED on | |||
digitalWrite(greenLED, HIGH); // set the LED off | |||
break; | |||
default: break; | |||
} | |||
// stay here until switch pressed | |||
do{/*nothing*/ } while(digitalRead(button)==1); | |||
do{/*nothing*/ } while(digitalRead(button)==0); | |||
delay(200); //debouncing | |||
state++; | |||
} | |||
</source> | |||
[[Acrob02|Predošlá úloha...]] | [[Acrob|Späť do menu]] | [[Acrob03|Pokračovanie...]] | [[Acrob02|Predošlá úloha...]] | [[Acrob|Späť do menu]] | [[Acrob03|Pokračovanie...]] |
Aktuálna revízia z 09:12, 6. máj 2010
Príklad na pripojenie a prečítanie tlačítka.
#define redLED 2 // LED connected to digital pin 2
#define greenLED 3 // LED connected to digital pin 3
#define button 7 // SW 1 connected to D7
int state=0;
void setup() {
// initialize the digital pins as an outputs:
pinMode( redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode( button, INPUT);
// !!! Bez tohoto obyc. tlacitko na zem nefunguje!!!
digitalWrite( button, HIGH); // pull-up ON
Serial.begin(9600);
}
void loop()
{
state = digitalRead(button); // read the value from the sensor
Serial.print("Sensor = ");
Serial.println(state, DEC);
delay(200);
}
Príklad na stavový diagram. Sú 4 stavy, prechody sú riešené tlačítkom. Prepracovať,
treba aby boli rôzne prechody a potom viditeľne v programe oddeliť prechodové a stavové
riadky.
#define redLED 2 // LED connected to digital pin 2
#define greenLED 3 // LED connected to digital pin 3
#define button 7 // SW 1 connected to D7
int state=0;
void setup() {
// initialize the digital pins as an outputs:
pinMode( redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode( button, INPUT);
// !!! Bez tohoto obyc. tlacitko na zem nefunguje!!!
digitalWrite( button, HIGH); // pull-up ON
Serial.begin(9600);
}
void loop()
{
if ( state>3 ) state=0;
Serial.print("State = ");
Serial.println(state, DEC);
switch (state) {
case 0:
digitalWrite( redLED, LOW); // set the LED on
digitalWrite(greenLED, LOW); // set the LED off
break;
case 1:
digitalWrite( redLED, HIGH); // set the LED on
digitalWrite(greenLED, LOW); // set the LED off
break;
case 2:
digitalWrite( redLED, LOW); // set the LED on
digitalWrite(greenLED, HIGH); // set the LED off
break;
case 3:
digitalWrite( redLED, HIGH); // set the LED on
digitalWrite(greenLED, HIGH); // set the LED off
break;
default: break;
}
// stay here until switch pressed
do{/*nothing*/ } while(digitalRead(button)==1);
do{/*nothing*/ } while(digitalRead(button)==0);
delay(200); //debouncing
state++;
}