BASIC4MCU | 질문게시판 | 코드는 오류가 안뜨는데 작동을 안해서 피드백하나 가능할까요
페이지 정보
작성자 gw12 작성일2022-12-10 17:44 조회694회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=22143
첨부파일
본문
미세먼지 센서에서 값을 받아서 모터를 돌리는 구성입니다.
모터만 따로 구동하는 코드로는 모터가 작동하고
미세먼지센서로 lcd모니터에 값을 띄우는 코드도 작동합니다.
두 코드를 결합하면 모터가 구동이 안돼서 그러는데 피드백 부탁드립니다 ㅜㅜ
#include <LiquidCrystal_I2C.h>#include <Wire.h>#define DIR 5#define STEP 4#define STEP_DELAY 500#define STEP_COUNT 1000LiquidCrystal_I2C lcd (0x27, 16, 2);int Dust = 0;char str1[10];int Vo = A0;int V_LED = 2;float Vo_value = 0;float Voltage = 0;void setup(){Wire.begin();Serial.begin(9600);while(!Serial);Serial.println("\nI2C Scanner");pinMode(V_LED, OUTPUT);pinMode(Vo, INPUT);pinMode(DIR, OUTPUT);pinMode(STEP, OUTPUT);digitalWrite(DIR, HIGH);lcd.begin();lcd.noBacklight();lcd.clear();delay(500);lcd.backlight();delay(500);lcd.setCursor(6, 0);lcd.print("SENSOR");delay(1000);lcd.clear();}void loop(){digitalWrite(V_LED, LOW);delayMicroseconds(280);Vo_value = analogRead(Vo);delayMicroseconds(40);digitalWrite(V_LED, HIGH);delayMicroseconds(9680);Voltage = Vo_value * 5.0 / 1023.0;Serial.print(" Volatage: ");Serial.println(Voltage);if (Voltage < 0.1) {Dust = 0;}else if (Voltage < 0.8) {Dust = 10 * (5 * (Voltage - 0.1));}else if (Voltage < 1) {Dust = 10 + 15 * ((Voltage - 0.8) * 10);}else if (Voltage > 1) {Dust = 40 + 16 * ((Voltage - 1) * 10);}Serial.print("Dust : ");Serial.println(Dust);Serial.println(" ");delay(10);lcd.setCursor(1, 0);lcd.print("Dust : ");sprintf(str1, "%03d", Dust);lcd.print(str1);lcd.write(0);lcd.print("g/m");lcd.write(1);digitalWrite(DIR, HIGH);for(int i = 0; i < STEP_COUNT; i++) {digitalWrite(STEP, HIGH);delayMicroseconds(STEP_DELAY);digitalWrite(STEP, LOW);delayMicroseconds(STEP_DELAY);}digitalWrite(DIR, LOW);for(int i = 0; i < STEP_COUNT; i++) {digitalWrite(STEP, HIGH);delayMicroseconds(STEP_DELAY);digitalWrite(STEP, LOW);delayMicroseconds(STEP_DELAY);}delay(10);}
댓글 0
조회수 694등록된 댓글이 없습니다.