BASIC4MCU | 질문게시판 | 아두이노 코드 합치기
페이지 정보
작성자 아두초보이노 작성일2023-05-24 14:44 조회369회 댓글1건본문
3개의 코드를 합치고 싶어서 질문드립니다.
1. lcd판넬 소스코드
#define PB_RESET 2
#define PB_STOP 3
#define PB_START 4
#include <Wire.h>
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
pinMode(PB_RESET, INPUT);
pinMode(PB_STOP, INPUT);
pinMode(PB_START, INPUT);
}
void loop() {
int a=0;
int b=0;
int c=0;
int d=0;
int f=0;
String strArr1[] = {"Welcome","Driving","StopOver","Destination","Alight"};
String strArr2[] = {"",".","..","..."};
lcd.init();//초기화
lcd.backlight();
lcd.setCursor(0,0);//좌표
lcd.print("Enter PB_Reset");
delay(1000);
if(digitalRead(PB_RESET)==HIGH){
f=1;
}
while(f==1){
lcd.init();//초기화
lcd.backlight();
lcd.setCursor(0,0);//좌표
lcd.print("Enter PB_Start");
delay(1000);
while(1){
if(digitalRead(PB_START)==HIGH){
a=1;
for(int i=0; i<=3; i++){
lcd.init();//초기화
lcd.backlight();
lcd.setCursor(3,0);//좌표
lcd.print(strArr1[a]);
lcd.print(strArr2[i]);
lcd.setCursor(3,1);//좌표
lcd.print(strArr1[a]);
lcd.print(strArr2[i]);
delay(1000);
}
b=2;
c++;
}
if(digitalRead(PB_STOP)==HIGH){
b=4;
lcd.init();//초기화
lcd.backlight();
lcd.setCursor(3,0);//좌표
lcd.print(strArr1[b]);
lcd.setCursor(3,1);//좌표
lcd.print(strArr1[b]);
delay(1000);
}
if(digitalRead(PB_RESET)==HIGH){
b=0;
break;
}
if(c==2){
b=3;
c=0;
}
lcd.init();//초기화
lcd.backlight();
lcd.setCursor(3,0);//좌표
lcd.print(strArr1[b]);
lcd.setCursor(3,1);//좌표
lcd.print(strArr1[b]);
delay(1000);
}
break;
}
}
2. 바코드와 압력센서 연동 소스코드
#define barcode1 3
#define barcode2 4
#define barcode3 5
const int pressSensor1 = A1;
const int pressSensor2 = A2;
const int pressSensor3 = A3;
int LED_N = 0;
int n = 0;
int nn = 0;
int a1=0;
int b1=1;
int c1=1;
int a2=0;
int b2=1;
int c2=1;
int a3=0;
int b3=1;
int c3=1;
int k = 0;
unsigned char strArr[2] = {LOW,HIGH};
int value1 = analogRead(pressSensor1);
int value2 = analogRead(pressSensor2);
int value3 = analogRead(pressSensor3);
void setup() {
Serial.begin(9600);
for(int i=22;i<=40;i++){
pinMode(i,OUTPUT);
}
pinMode(barcode1, INPUT);
pinMode(barcode2, INPUT);
pinMode(barcode3, INPUT);
}
void loop() {
/*int LED_N = 0;
int n = 0;
int nn = 0;
int a=0;
int b=1;
int c=1;
int k = 0;
unsigned char strArr[2] = {LOW,HIGH};
int value1 = analogRead(pressSensor1);
int value2 = analogRead(pressSensor2);
int value3 = analogRead(pressSensor3);*/
/*digitalWrite(22,LOW); //적색
digitalWrite(24,HIGH); //녹색
digitalWrite(26,HIGH); //청색
digitalWrite(28,LOW); //적색
digitalWrite(30,HIGH); //녹색
digitalWrite(32,HIGH); //청색
digitalWrite(34,LOW); //적색
digitalWrite(36,HIGH); //녹색
digitalWrite(38,HIGH); //청색
digitalWrite(23,LOW); //적색
digitalWrite(25,HIGH); //녹색
digitalWrite(27,HIGH); //청색
digitalWrite(29,LOW); //적색
digitalWrite(31,HIGH); //녹색
digitalWrite(33,HIGH); //청색
digitalWrite(35,LOW); //적색
digitalWrite(37,HIGH); //녹색
digitalWrite(39,HIGH); //청색*/
if(digitalRead(barcode1)==HIGH){
while(1){
int value1 = analogRead(pressSensor1);
Serial.println(value1);
LED_N = 22;
n = k%2;
digitalWrite(LED_N,strArr[1]); //적색 22
digitalWrite(LED_N+2,strArr[n]); //녹색 24
digitalWrite(LED_N+4,strArr[1]); //청색 26
k++;
if(value1>=800){
a1=1;
b1=0;
c1=1;
break;
}
delay(500);
}
}
if(digitalRead(barcode2)==HIGH){
while(1){
int value2 = analogRead(pressSensor2);
Serial.println(value2);
LED_N = 28;
n = k%2;
digitalWrite(LED_N,strArr[1]); //적색 28
digitalWrite(LED_N+2,strArr[n]); //녹색 30
digitalWrite(LED_N+4,strArr[1]); //청색 32
k++;
if(value2>=800){
a2=1;
b2=0;
c2=1;
break;
}
delay(500);
}
}
if(digitalRead(barcode3)==HIGH){
while(1){
int value3 = analogRead(pressSensor3);
Serial.println(value3);
LED_N = 34;
n = k%2;
digitalWrite(LED_N,strArr[1]); //적색 34
digitalWrite(LED_N+2,strArr[n]); //녹색 36
digitalWrite(LED_N+4,strArr[1]); //청색 38
+
k++;
if(value3>=800){
a3=1;
b3=0;
c3=1;
break;
}
delay(500);
}
}
digitalWrite(22,strArr[a1]); //적색
digitalWrite(24,strArr[b1]); //녹색
digitalWrite(26,strArr[c1]); //청색
digitalWrite(28,strArr[a2]); //적색
digitalWrite(30,strArr[b2]); //녹색
digitalWrite(32,strArr[c2]); //청색
digitalWrite(34,strArr[a3]); //적색
digitalWrite(36,strArr[b3]); //녹색
digitalWrite(38,strArr[c3]); //청색
}
3. 바코드 소스코드
#include <SoftwareSerial.h>
SoftwareSerial GM65(2,3);
void setup() {
Serial.begin(115200);
GM65.begin(9600);
}
void loop() {
while (GM65.available()) {
String barcode_Data = GM65.readStringUntil('\n');
Serial.print("read : ");
Serial.println(barcode_Data);
}
delay(20);
}
댓글 1
조회수 369master님의 댓글
master 작성일
와일 무한루프를 좋아하나 봅니다.
무한루프를 사용하지 않도록 수정한 후에 합쳐보세요