AplTVY3-B3-1sk-4T
(Rozdíly mezi verzemi)
(→se pohyboval dokud nebude stisknutý dotykový senzor) |
(→se pohyboval dokud nebude stisknutý dotykový senzor) |
||
Řádka 116: | Řádka 116: | ||
<source lang="Cpp"> | <source lang="Cpp"> | ||
− | int analogPin = 1; // | + | int analogPin = 1; //nastavení vstupního pinu ze senzoru |
− | + | ||
− | int val = 0; // | + | int val = 0; // hodnota, která přijde z analogového pinu |
int motor_left[] = {6, 7}; | int motor_left[] = {6, 7}; | ||
Řádka 125: | Řádka 125: | ||
void setup() | void setup() | ||
{ | { | ||
− | Serial.begin(9600); | + | Serial.begin(9600); |
int i; | int i; | ||
for(i = 0; i < 2; i++){ | for(i = 0; i < 2; i++){ | ||
Řádka 135: | Řádka 135: | ||
void loop() | void loop() | ||
{ | { | ||
− | val = analogRead(analogPin); | + | val = analogRead(analogPin); // načtení vstupního pinu |
− | + | ||
− | if (val>600) | + | if (val>600) |
{ | { | ||
drive_forward(); | drive_forward(); |
Verze z 18. 6. 2012, 11:04
HW: Arduino realizace: Maxa David Charvát Jakub Lukáš Jílek
Úkoly:
- Sestavte robota, napište program a vyzkoušejte proto, aby robot:
se pohyboval vpřed do vzdálenosti 1m
int motor_left[] = {6, 7} int motor_right[] = {8, 10} void setup() { Serial.begin(9600); int i; for(i = 0; i < 2; i++){ pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); drive_forward(); delay(6200); motor_stop(); Serial.println("1"); } } void loop() { } void motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); } void drive_forward(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); }
se pohyboval vpřed ve čtyřúhelníku o straně cca 0,5m
int motor_left[] = {6, 7}; int motor_right[] = {8, 10}; void setup() { Serial.begin(9600); int i; for(i = 0; i < 2; i++){ pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); } } void loop() {} drive_forward(); delay(3200); motor_stop(); Serial.println("1"); turn_left(); delay(420); motor_stop(); Serial.println("3"); motor_stop(); delay(1000); motor_stop(); Serial.println("5"); } void motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); delay(25); } void drive_forward(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); } void turn_left(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); }
jel rovně a zastavil na 60 cm vzdáleném místě označeném černou lepící páskou
se pohyboval dokud nebude stisknutý dotykový senzor
int analogPin = 1; //nastavení vstupního pinu ze senzoru int val = 0; // hodnota, která přijde z analogového pinu int motor_left[] = {6, 7}; int motor_right[] = {8, 10}; void setup() { Serial.begin(9600); int i; for(i = 0; i < 2; i++){ pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); } } void loop() { val = analogRead(analogPin); // načtení vstupního pinu if (val>600) { drive_forward(); delay(1000); } if (val <600) { motor_stop(); } } void motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); delay(25); } void drive_forward(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); } void drive_backward(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH); }