BASIC4MCU | 질문게시판 | 답변 : 초보)) 아두이노 프로세싱 코드 질문 드려요!ㅠㅠ
페이지 정보
작성자 master 작성일2018-12-17 21:42 조회8,786회 댓글2건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=6987
작성일
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-12-17 오후 9:47:49// by Ok-Hyun Park//조도 센서 여러 개를 사용하여조도센서a가 완전히 어두워지면 프로세싱에서 a이미지만 뜨고조도센서b가 완전히 어두워지면 b이미지만 뜨게 하고이런 식으로 싶은데 일단 두 개까지만 해봤는데 영 안돼서 질문 드려요ㅜㅜ어떻게 고쳐야 할까요?//-----------------------------------<<아두이노 코딩>>//void setup(){Serial.begin(9600);}//void loop(){int cds1=analogRead(A0); Serial.print("cds1="); Serial.println(cds1);int cds2=analogRead(A1); Serial.print("cds2="); Serial.println(cds2);int cds3=analogRead(A2); Serial.print("cds3="); Serial.println(cds3);int cds4=analogRead(A3); Serial.print("cds4="); Serial.println(cds4);int cds5=analogRead(A4); Serial.print("cds5="); Serial.println(cds5);int cds6=analogRead(A5); Serial.print("cds6="); Serial.println(cds6);delay(1000);byte cds=0;if(cds1>500)cds1|=0x01;if(cds2>500)cds2|=0x02;if(cds3>500)cds3|=0x04;if(cds4>500)cds4|=0x08;if(cds5>500)cds5|=0x10;if(cds6>500)cds6|=0x20;Serial.write(byte(cds));}//-----------------------------------<<프로세싱 코딩>>import processing.serial.*;Serial serial;PImage image1;PImage image2;PImage image3;PImage image4;PImage image5;PImage image6;Serial myPort;//void setup(){size(1280,720);serial=new Serial(this,"/dev/cu.usbmodem141101",9600);image1=loadImage("a1.jpg");image2=loadImage("a2.jpg");image3=loadImage("a3.jpg");image4=loadImage("a4.jpg");image5=loadImage("a5.jpg");image6=loadImage("a6.jpg");}//void draw(){if(serial.available()>0){int sw=serial.read();if((sw&0x01)!=0)image(image1,0,0,850,850);if((sw&0x02)!=0)image(image2,0,0,850,850);if((sw&0x04)!=0)image(image3,0,0,850,850);if((sw&0x08)!=0)image(image4,0,0,850,850);if((sw&0x10)!=0)image(image5,0,0,850,850);if((sw&0x20)!=0)image(image6,0,0,850,850);}}
댓글 2
조회수 8,786JJJ1007님의 댓글
JJJ1007 작성일
답변 정말 감사합니다!! 혹시 질문 한 개만 더 여쭤봐도 괜찮을까요?ㅜㅜ코드에서의 0X01이 무슨 뜻인지 잘 모르겠습니다 저 개인적으로 처음 보는 코드여서 어떻게 sw 옆에 0x01 올 수 있는지 잘 모르겠고 프로세싱에서도 type mismatch, "int" does not match with "boolean"이라는 오류가 떠서요ㅠㅠ
또한 프로세싱 코드에서 (serial.available) 여기서 존재하지 않는다는 오류가 뜨는데 기존에 제가 했던 데로 (serial.available()>=0)로 다시 바꾸는 것이 가능할까요??
master님의 댓글
master
0x01은 16진수로 1입니다.
0x20은 16진수로 20입니다. 십진수로는 32가 되겠죠
비트연산과 진수에 대해서 공부하세요
//
serial.available()
뒤에 ()를 빼먹어서 오류가 발생한 것 같고요
//
자바 문법이 c보다 엄격해서 오류를 일으키는군요
수정했으니 다시 돌려보세요