BASIC4MCU | 질문게시판 | 아두이노 도움부탁드립니다!
페이지 정보
작성자 리셀 작성일2022-11-25 14:59 조회757회 댓글1건첨부파일
본문
안녕하세요 대학 재학중인 전기과 학생입니다.현재 수위센서2개를 사용해지하 센서감지 -> 차수판 on지상 센서미감지 & 지하 센서 일정 수위 미만 -> 차수판 off차수판을 제작중인데요(스테핑모터 사용중)코딩을 짜는도중 고민해도 안되는게 있어 도움받을 수 있을까 해서 질문드립니다.Q&A아두이노에 신호를 주면 , 수위 센서에 감지가 될 경우에 최초 1회만 동작하고 감지가 안되면 동작하지 않는 코딩문이 필요합니다#include <Stepper.h> // 스테핑 모터 라이브러리를 정의 한다int in1Pin = 12; //[A] 상을 정의 한다int in2Pin = 11; //[B] 상을 정의 한다int in3Pin = 10; //[/A] 상을 정의 한다int in4Pin = 9; //[/B] 상을 정의 한다int analogPin0 = 0; // 워터센서 analog port 0 연결 선언=지하int analogPin1 = 1; // 워터센서 analog port 0 연결 선언=지상int led = 13; // LED 디지털 13번 포트 연결 선언int val0 = 0; // 전류변화값 변수선언int val1 = 0;int val2=0 ; //홀센서의 변수int hallsensor=4;//홀센서 4번으로 선언Stepper motor(50, in1Pin, in2Pin, in3Pin, in4Pin);void setup() {pinMode(in1Pin, OUTPUT); // [A] 상을 출력으로 지정한다pinMode(in2Pin, OUTPUT); //[B] 상을 출력으로 지정한다pinMode(in3Pin, OUTPUT); // [/A] 상을 출력으로 지정한다pinMode(in4Pin, OUTPUT); // [/B] 상을 출력으로 지정한다motor.setSpeed(10); // 스텝모터의 스피드 설정 함수 (RPM)Serial.begin(9600);}void loop() {val0 = analogRead(analogPin0); // analogPin 의 변화값(전류값)을 읽음val1 = analogRead(analogPin1); // analogPin 의 변화값(전류값)을 읽음if (val0 > 600) motor.step(-50); // 모터가 올라감if (val0 < 350 && val1 < 350) motor.step(50); // 모터가 내려감Serial.println(val0); // 시리얼모니터에 전류값 표시Serial.println(val1); // 시리얼모니터에 전류값 표시delay (100);}어떠한 답변이라도 기다리겠습니다 도움 부탁드립니다 ㅠ!
댓글 1
조회수 757master님의 댓글
master 작성일
#include <Stepper.h>
int in1Pin=12,in2Pin=11,in3Pin=10,in4Pin=9;
Stepper motor(50,in1Pin,in2Pin,in3Pin,in4Pin);
//
int led=13;
int hallsensor=4; //홀센서 4번으로 선언
//
int val0=0,val1=0,val2=0;
int WaterPlate=0; // 초기값=off
//
void setup(){
pinMode(in1Pin,OUTPUT); pinMode(in2Pin,OUTPUT); pinMode(in3Pin,OUTPUT); pinMode(in4Pin,OUTPUT);
motor.setSpeed(10); // 스텝모터의 스피드(RPM)
Serial.begin(9600);
}
//
void loop(){
val0=analogRead(A0); Serial.println(val0); // analogPin 의 변화값(전류값)을 읽음
val1=analogRead(A1); Serial.println(val1); // analogPin 의 변화값(전류값)을 읽음
//
if(val0>600 ){ if(WaterPlate==0){ WaterPlate=1; motor.step(-50); } } // 모터가 올라감
if(val0<350 && val1<350){ if(WaterPlate==1){ WaterPlate=0; motor.step( 50); } } // 모터가 내려감
//
delay(100);
}