728x90
반응형
#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
byte state = 0;
byte prestate = 0;
byte once = 0;
const int sw1 = 2;
const int en = 7; // 스테퍼모터 온/오프 핀. HIGI일 때 작동
const int val = A5; //가변 저항 값
const int c_out = A4;
const int c_s3 = A3;
const int c_s2 = A2;
const int c_s1 = A1;
const int c_s0 = A0;
int sww = 1;
int sww2 = 1;
int vall = 0;
void Change(){
if(state==0){
State1();
}else{
State0();
}
}
void State0() {
delay(200);
digitalWrite(en, LOW);
Serial.print("STOP");
once = 0;
state = 0;
}
void State1() {
delay(200);
digitalWrite(en, HIGH);
Serial.print("START");
state = 1;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(en, OUTPUT);
digitalWrite(en, LOW);
pinMode(sw1, INPUT);
// pinMode(sw2, INPUT);
attachInterrupt(digitalPinToInterrupt(sw1), Change, FALLING);
// pinMode(to_sub, OUTPUT);
// digitalWrite(to_sub, LOW);
// pinMode(r, OUTPUT);
// digitalWrite(r, LOW);
// pinMode(g, OUTPUT);
// digitalWrite(g, LOW);
// pinMode(b, OUTPUT);
// digitalWrite(b, LOW);
// pinMode(ts, INPUT);
servo1.attach(9);
servo2.attach(10);
servo3.attach(11);
servo4.attach(12);
servo1.write(90);
servo2.write(90);
servo3.write(90);
servo4.write(90);
pinMode(val, INPUT);
pinMode(c_out, INPUT);
pinMode(c_s3, INPUT);
pinMode(c_s2, INPUT);
pinMode(c_s1, INPUT);
pinMode(c_s0, INPUT);
Serial.println("Device's ready");
delay(1000);
}
void loop() {
once = 0;
while (state == 0) {
if (once == 0) {
servo1.write(90);
delay(15);
servo2.write(90);
delay(15);
servo3.write(90);
delay(15);
servo4.write(90);
delay(15);
once = 1;
}
// Serial.println(digitalRead(ts));
Serial.println(analogRead(val));
}
while (state == 1) {
while (Serial.available() > 0) {
char data = Serial.read();
if (data == '1') {
servo1.write(30);
delay(1000);
servo1.write(90);
delay(2000);
if(state==0){
break;
}
}
else if (data == '2') {
servo2.write(150);
delay(1000);
servo2.write(90);
delay(2000);
if(state==0){
break;
}
}
else if (data == '3') {
servo3.write(30);
delay(1000);
servo3.write(90);
delay(2000);
if(state==0){
break;
}
}
else if (data == '4') {
servo4.write(150);
delay(1000);
servo4.write(90);
delay(2000);
if(state==0){
break;
}
}
}
}
}
728x90
반응형
'인공지능 기초' 카테고리의 다른 글
티처블머신 OpenCV Keras 오픈소스 업그레이드(화면 확장) (5) | 2024.10.24 |
---|---|
mediapipe pose 모델 활용 (3) | 2024.10.01 |
Miniconda 로 가상환경 만들기. #2 [가상환경 생성과 라이브러리 설치] (1) | 2024.08.24 |
Miniconda 로 가상환경 만들기. #1 [Miniconda 설치와 실행] (0) | 2024.08.23 |
math 라이브러리 활용 (0) | 2023.11.28 |