Acro02b: Rozdiel medzi revíziami
Z SensorWiki
(Nová stránka: <source lang="cpp"> #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 ...) |
|||
(Jedna medziľahlá úprava od rovnakého používateľa nie je zobrazená.) | |||
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...]] |
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++;
}