실제로 테스트에서 메인 램프가 오동작을 보여 약간의 설계 변경.
전원 차단시 백업 컨덴서에서 필요 없는 부분으로 역류하는 것도 막아주게 변경했다.
LED 밝기도 조금씩 조절했다.

실제로 테스트에서 메인 램프가 오동작을 보여 약간의 설계 변경.
전원 차단시 백업 컨덴서에서 필요 없는 부분으로 역류하는 것도 막아주게 변경했다.
LED 밝기도 조금씩 조절했다.












사용 센서 : Freescale MMA7260 - 제품 UST-SNR-ACCEL (구입처)
아두이노에 업로드용
int gSel1 = 6; // 6번핀 G SELECT1
int gSel2 = 7; // 7번핀 G SELECT2
int sleep = 3; // 3번핀 /SLEEP
int x = 0; // A0 X축
int y = 1; // A1 Y축
int z = 2; // A2 Z축
void setup(){
pinMode(gSel1, OUTPUT);
pinMode(gSel2, OUTPUT);
pinMode(sleep, OUTPUT);
Serial.begin(9600);
// g-Range & Sensitivity
digitalWrite(gSel1, LOW); // LL 1.5g 800 HL 2g 600 LH 4g 300 HH 6g 200
digitalWrite(gSel2, LOW);
digitalWrite(sleep, HIGH); // SLEEP 해제 HIGH
}
void loop(){
Serial.print(analogRead(x));
Serial.print(",");
Serial.print(analogRead(y));
Serial.print(",");
Serial.println(analogRead(z));
delay(10);
}
프로세싱용
import processing.serial.*; // import the Processing serial library
int linefeed = 10; // Linefeed in ASCII
Serial myPort; // The serial port
int graphPosition;
int[] lineXYZ = new int[3];
void setup() {
size(630,480);
background(0);
println(Serial.list());
myPort = new Serial(this, Serial.list()[1], 9600); // [1]은 리스트를 보고 자기가 쓰는 아두이노용 COM포트로 변경
myPort.bufferUntil(linefeed);
}
void draw() {
// 빨간색: X, 녹색: Y, 파란색: Z
stroke(255,0,0);
point(graphPosition,lineXYZ[0]);
stroke(0,255,0);
point(graphPosition,lineXYZ[1]);
stroke(0,0,255);
point(graphPosition,lineXYZ[2]);
if (graphPosition >= width) {
graphPosition = 0;
background(0);
}
else{
graphPosition ++;
}
}
void serialEvent(Serial myPort) {
// read the serial buffer:
String myString = myPort.readStringUntil(linefeed);
// if you got any bytes other than the linefeed:
if (myString != null) {
myString = trim(myString);
int sensors[] = int(split(myString, ','));
for (int sensorNum = 0; sensorNum < sensors.length; sensorNum++) {
print("Senor" + sensorNum + " : " + sensors[0] + "\t");
//센서 값(0~1023)을 대략 3으로 나누고(세로 해상도가 480) 근사값 정수만 취해서 각각의 그래프용 좌표에 대입
lineXYZ[sensorNum] = ceil(sensors[sensorNum]/3);
}
println();
}
}
000
과거 CuBLOC에서 테스트해보려고 구입했던 3축 가속도 센서를 아두이노에 물렸다.
확실히 수치만 보다 그래프로 보니 확실히 눈에 잘 들어온다.







인터럽트를 이용해야겠다.
그나저나 날씨 무지 덥네.

어제 하루 종일 삽질하게 만들었던 xBEE.
다 포기하고 기술 지원이나 받으러 가려고
BEEs 실드 하나에 두개를 끼우고 왼쪽 xBEE에서 오른쪽 xBEE으로 보내는 루프백 테스트 스케치를 하나 만들어 넣고는 돌려봤는데...
잘 돌 아 간 다 !
ㅡㅅ-);;;;;
이거 뭥미.
그래서 각각 나눠서 전송 테스트.

BEEs실드가 두개가 동시에 불량이 나거나, xBEE가 두개가 동시에 불량이 날리는 없을테고..
동작등은 들어오는데 직접 USB-UART로 RX-TX연결해서 터미널로 커맨드를 보내도 반응이 없는 것으로 봐서는...
xBEE세팅을 해야 동작할 것으로 보인다.
그러려면 좀 좋은(?) USB-UART 변환장치가 필요하다. 예전에 멋도 모르고 사놓은 건 단순히 데이터 전송용으로 밖에 못쓰는 것이다. 하나사야하나 하고 이리저리 살펴보던 중 xBEE 수입처가 회사 근처에 있는 것을 발견했다. 낼 직접 들고가서 뭐가 문젠지 파악하고 와야겠다. 펌웨어도 최신으로 업데이트 하고, 이런 저런 자료나 받아와야겠다. 나중을 위해서라도 FTDI USB 시리얼 변환기는 하나 사야겠지만, 일단 급한 불은 끌 수 있을듯.




public: LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);요 부분이다.
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);이 형식을 따라 연결해 주면 된다.
LiquidCrystal lcd(5, 6, 7, 9, 10, 11, 12);와 같이 아두이노 5, 6,7, 9, 10, 11, 12번 핀과 CLCD 해당 핀을 서로 연결해 준다.

lcd.print("[1]-----------------");
lcd.print("[2]-----------------");
lcd.print("[3]-----------------");
lcd.print("[4]----------------");
lcd.setCursor(0, 0);
lcd.print("[1]");
lcd.setCursor(1, 1);
lcd.print("[2]");
lcd.setCursor(2, 2);
lcd.print("[3]");
lcd.setCursor(3, 3);
lcd.print("[4]");
이번에는 위와 같은 명령어를 써 봤다.
![]() | ![]() |















*주의* 여기에 쓰여 있는 재패니노(Japanino)는 아두이노(Arduino) 호환기입니다. 어른의 과학 매거진 Vol.27 부록으로 일반인이 쉽게 접할 수 있는 제품이다 보니 이것을 기본으로 작업했습니다. 그러므로 재패니노라고 언급된 부분은 아두이노로 바꿔 읽으셔도 아무 문제 없습니다.
일단 불을 켜보자!
어른의 과학 매거진 Vol.27호 부록 테크노 공작 세트를 풀어봅시다. 아래와 같은 구성품이 보일 것입니다.
오른쪽의 하얀색은 광잔상 키트고 중간의 빨간 것은 재패니노, 그리고 왼쪽의 검은 것은 배터리 케이스입니다. 배터리 케이스 위에 있는 것은 광잔상을 남기는 LED 유닛입니다. 이번에 쓸 것은 재패니노와 배터리 케이스입니다. 광잔상 키트는 조립해야 하지만 이 둘은 그냥 바로 쓸 수 있기 때문에 기다리지 않고 바로 작업에 들어갈 수 있습니다.
![]() | ![]() |





/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
The circuit:
* LED connected from digital pin 13 to ground.
* Note: On most Arduino boards, there is already an LED on the board
connected to pin 13, so you don't need any extra components for this example.
Created 1 June 2005
By David Cuartielles
http://arduino.cc/en/Tutorial/Blink
based on an orginal by H. Barragan for the Wiring i/o board
*/
int ledPin = 13; // LED connected to digital pin 13
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
digitalWrite(ledPin, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(ledPin, LOW); // set the LED off
delay(1000); // wait for a second
}
-
ledPin = 13; // LED connected to digital pin 13 ledPin = 13;은 내가 앞으로 LED를 13번째 핀에 붙이겠다고 생각한 걸 미리 예약해 놓는 것입니다. 그런데 어떻게 예약하느냐 하면, 앞으로 스케치에 나오는 ledPin이라는 낱말은 모두 13으로 바꿔 달라는 거죠. 13 뒤에 써있는 ;는 이 명령의 끝이다라는 의미입니다.setup() {

int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop()
{
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
더 줄여 볼까요? void setup() {
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
ledPin = 13;
을
int ledPin = 7;
로 하나만 바꿔 주면 끝나죠.= 13; 라고 했다면, 뒤에도 digitalWrite(KOMAJEONGOO, LOW); 로 해줘야한단 말입니다.
댓글을 달아 주세요