-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharduino day3
167 lines (131 loc) · 4.11 KB
/
arduino day3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
servo small
#include <Servo.h>
#define PTR_PIN A0
Servo myservo; // create servo object to control a servo
int val; // variable to read the value from the analog pin
void setup() {
myservo.attach(13); // attaches the servo on pin 9 to the servo object
pinMode(PTR_PIN, INPUT);
}
void loop() {
val = analogRead(PTR_PIN); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}
servo yellow mid
#define SPEED_1 5
#define DIR_1 4
#define SPEED_2 6
#define DIR_2 7
void setup() {
for (int i = 4; i < 8; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
digitalWrite(DIR_1, LOW);
analogWrite(SPEED_1, 255);
delay(1000);
digitalWrite(DIR_1, HIGH);
delay(1000);
analogWrite(SPEED_1, 0);
digitalWrite(DIR_2, LOW);
analogWrite(SPEED_2, 255);
delay(1000);
digitalWrite(DIR_2, HIGH);
delay(1000);
analogWrite(SPEED_2, 0);
delay(1000);
}
servo with a pult
#include <IRremote.hpp>
#define IR_RECEIVE_PIN 0
#define IR_BUTTON_PLUS 21
#define IR_BUTTON_MINUS 7
#define IR_BUTTON_CH_PLUS 71
#define IR_BUTTON_CH_MINUS 69
#define IR_BUTTON_PLAY_PAUSE 67
#define SPEED_1 5
#define DIR_1 4
#define SPEED_2 6
#define DIR_2 7
void setup(){
Serial.begin(9600);
IrReceiver.begin(IR_RECEIVE_PIN);
for (int i = 4; i < 8; i++) {
pinMode(i, OUTPUT);
}
}
void loop(){
if (IrReceiver.decode()) {
IrReceiver.resume(); // Enable receiving of the next value
int command = IrReceiver.decodedIRData.command;
switch (command) {
case IR_BUTTON_PLUS: {
digitalWrite(DIR_1, LOW); // set direction
analogWrite(SPEED_1, 255); // set speed
digitalWrite(DIR_2, LOW); // set direction
analogWrite(SPEED_2, 255); // set speed
break;
}
case IR_BUTTON_MINUS: {
digitalWrite(DIR_1, HIGH); // set direction
analogWrite(SPEED_1, 255); // set speed
digitalWrite(DIR_2, HIGH); // set direction
analogWrite(SPEED_2, 255); // set speed
break;
}
case IR_BUTTON_CH_PLUS: { // stop mototrs
digitalWrite(DIR_1, HIGH); // set direction
analogWrite(SPEED_1, 255); // set speed
digitalWrite(DIR_2, LOW); // set direction
analogWrite(SPEED_2, 255); // set speed
break;
}
case IR_BUTTON_CH_MINUS: {
digitalWrite(DIR_1, LOW); // set direction
analogWrite(SPEED_1, 255); // set speed
digitalWrite(DIR_2, HIGH); // set direction
analogWrite(SPEED_2, 255); // set speed
break;
}
case IR_BUTTON_PLAY_PAUSE: { // stop mototrs
analogWrite(SPEED_1, 0);
analogWrite(SPEED_2, 0);
break;
}
}
}
}
servo with joistick
#define pinX A0 // ось X джойстика
#define pinY A1 // ось Y джойстика
#define swPin 2 // кнопка джойстика
#define SPEED_1 5
#define DIR_1 4
#define SPEED_2 6
#define DIR_2 7
void setup(){
Serial.begin(9600);
pinMode(pinX, INPUT);
pinMode(pinY, INPUT);
pinMode(swPin, INPUT);
digitalWrite(swPin, HIGH);
}
void loop() {
boolean ledState = digitalRead(swPin); // считываем состояние кнопки
int X = analogRead(pinX); // считываем значение оси Х
int Y = analogRead(pinY); // считываем значение оси Y
Serial.print(X); // выводим в Serial Monitor
Serial.print("\t"); // табуляция
Serial.println(Y);
if (X < 512){
digitalWrite(DIR_1, LOW); // set direction
analogWrite(SPEED_1, 0); // set speed
}
else{
digitalWrite(DIR_1, HIGH); // set direction
analogWrite(SPEED_1, 255); // set speed
}
}