1. Dht-22와 라즈베리파이를 다음처럼 연결합니다..Dht-22 raspberry piVCC 3.3VDATA GPIO22GND GND 2. WiringPi 다운로드 및 설치$ git clone git://git.drogon.net/wiringPi$ cd wiringPi$ ./build 3. 예제 코드 컴파일 및 테스트아래 코드를 라즈베리파이로 복사한 후.. 컴파일 및 실행..pi@raspberrypi:~ $ gcc dht22.c -lwiringPipi@raspberrypi:~ $ sudo ./a.out Raspberry Pi DHT11/DHT22 temperature/humidity testHumidity = 53.5 % Temperature = 31.2 *C (88.2 *F)Humidity = 53..
DHT-22와 아두이노 UNO를 다음처럼 연결합니다.. DHT-22 아두이노 UNOVCC 5VDATA 2GND GND 아두이노 IDE를 실행시키고 메뉴에서 스케치 - 라이브러리 포함하기 - 라이브러리 관리를 선택합니다.. DHT22를 검색하여 DHT sensor library를 설치합니다. 이제 다음 코드를 업로드합니다..123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354// Example testing sketch for various DHT humidity/temperature sensors// Written by ladyada, public domain #include "D..
용어 정의BOTTOM - 카운터가 0이 되었을 때를 의미. MAX – 카운터가 0xFF(=255)에 도달했을 때를 의미 TOP TOP값은 0xFF(MAX) 또는 OCR0 레지스터에 저장된 값으로 지정할 수 있다.카운터가 TOP값과 똑같거나 더 커진 경우를 의미한다. Phase Correct PWM 모드Phase Correct Pulse Width Modulation(Phase Correct PWM) 모드는 TCCR0 레지스터의 WGM01비트는 0으로, WGM00비트는 1로 설정된 경우이다. 카운터값(TCNT0)는 BOTTOM에서 MAX로 증가하다가 다시 MAX에서 BOTTOM으로 감소하는 것을 반복한다. PWM 해상도는 8비트로 고정된다. noninverting Compare Output 모드에서는 TC..
용어 정의BOTTOM - 카운터가 0이 되었을 때를 의미. MAX – 카운터가 0xFF(=255)에 도달했을 때를 의미 TOP TOP값은 0xFF(MAX) 또는 OCR0 레지스터에 저장된 값으로 지정할 수 있다.카운터가 TOP값과 똑같거나 더 커진 경우를 의미한다. Fast PWM 모드fast Pulse Width Modulation(fast PWM) 모드는 TCCR0 레지스터의 WGM01과 WGM00비트가 1로 설정된 경우이다. 카운터값(TCNT0)는 BOTTOM으로부터 MAX까지 값이 증가하고 MAX에 도달하면 다시 BOTTOM부터 증가를 시작한다. non-inverting Compare Output 모드에서는 TCNT0와 OCR0가 일치하는 경우 output compare (OC0)가 0으로 클리어..
용어 정의BOTTOM - 카운터가 0이 되었을 때를 의미.MAX – 카운터가 0xFF(=255)에 도달했을 때를 의미TOP TOP값은 0xFF(MAX) 또는 OCR0 레지스터에 저장된 값으로 지정할 수 있다.카운터가 TOP값과 똑같거나 더 커진 경우를 의미한다. Clear Timer on Compare Match (CTC) 모드 TCCR0 레지스터의 WGM00 비트가 0이고 WGM01 비트가 1로 설정된 경우이다. TCNT0 레지스터는 카운터에서 값을 직접 읽거나 쓸 수 있게 해주는 레지스터이다. OCR0 레지스터에는 카운터 값인 TCNT0 레지스터와 비교할 때 사용되어 지는 8비트 값이 포함되어 있다. OCR0 레지스터의 값과 TCNT0 레지스터의 값이 일치하면 Output Compare Interru..
용어 정의BOTTOM - 카운터가 0이 되었을 때를 의미. MAX – 카운터가 0xFF(=255)에 도달했을 때를 의미 TOP TOP값은 0xFF(MAX) 또는 OCR0 레지스터에 저장된 값으로 지정할 수 있다.카운터가 TOP값과 똑같거나 더 커진 경우를 의미한다. 일반 모드TCCR0 레지스터의 WGM00 비트와 WGM01 비트가 0으로 설정된 경우이다. TCNT0 레지스터는 카운터에서 값을 직접 읽거나 쓸 수 있게 해주는 레지스터이다. 일반 모드에서 카운팅은 항상 증가하는 방향으로 이루어 진다. 8비트로 표현할 수 있는 최대값인 0xFF(=255)를 초과하면 다시 bottom(=0)부터 카운팅을 시작한다. TCNT0가 0이 되는 순간 TIFR 레지스터의 TOV0 비트가 1로 설정된다. 타이머/카운터 오..
외부 인터럽트는 INT7:0핀에 입력되는 트리거 신호에 의해서 발생한다. 트리거 신호는 폴링 에지, 라이징 에지, 로우 레벨 3가지가 될 수 있다. 어떤 신호 입력을 기다릴지 미리 설정해놓고 기다리다가 해당 신호가 입력되는 순간 인터럽트가 발생하는 것이다. Atmega 128에서 외부 인터럽트용 핀은 아래 그림처럼 8개가 있다. INT7:0 핀을 출력으로 설정해 놓고 인터럽트 핀을 소프트웨어적으로 조작하더라도 인터럽트가 발생한다. 예를들어 falling edge때 인터럽트가 발생하게 해놓고 해당 핀의 출력이 1에서 0으로 떨어지는 것처럼 값을 1과 0 값을 순서대로 출력해도 인터럽트가 발생한다. 어떤 트리거 신호가 입력될 때 인터럽트를 발생시킬지는 외부 인터럽트 제어 레지스터 EICRA (INT3:0)와..
아트멜사의 모든 AVR 마이크로컨트롤러의 포트들은 범용 디지털 입출력 포트로 사용되어질 때 Read-Modify-Write 기능이 있다. 이 기능은 다른 핀들의 값을 수정하지 않고 포트의 특정 핀만 수정할 수 있도록 한다. 다른 핀들의 방향에 영향을 주지 않고 한 포트 핀의 방향을 바꿀 수 있다. 핀이 출력으로 설정되었다면 다른 핀들에 영향을 주지 않고 출력 값을 HIGH/LOW로 변경할 수 있으며, 핀이 입력으로 설정되었다면 다른 핀들에 영향을 주지 않고 풀업 레지스터를 활성화/비활성화 할 수 있다. 각 출력 버퍼는 싱크와 소스가 대칭적인 드라이브 특성을 갖는다. 싱크와 소스 전류 모두 40mA로 대칭적이다. 양쪽 다 흐르는 전류는 LED를 켤 수 있을 정도로 충분하다. 아래 회로에서 PD0핀에 Low..
character LCD를 위 그림처럼 연결합니다. 아두이노와 DS1302 RTC를 아래처럼 연결해줍니다. 이전에는 VCC를 3.3V에 연결해도 잘 동작했는데.. LCD를 연결해서 그런지 제대로 동작하지 않아서 VCC와 GND를 디지털핀에 연결해주고 각각 핀상태를 HIGH와 LOW상태로 만들었습니다.. DS1302 RTC ----- Arduino UNORST 8 DAT 9CLK 10GND 7VCC 6 아래 주소에서 라이브러리를 다운로드 받아 압축을 풀어서http://playground.arduino.cc/uploads/Main/DS1302RTC.zip 아래 위치에 복사해줍니다.. 아래 주소에서 라이브러리를 다운로드 받아 압축을 풀어서 https://github.com/PaulStoffregen/Time ..
아두이노 101에 RTC가 있다는 소리를 못들었는데.. 시간 설정 및 시간 불러오는 예제 코드가 존재하는 군요.. SetTime예제를 불러와 시간을 현재 시간 및 날짜로 맞춘 후.. 아두이노 101에 업로드 시켜주면..시간이 현재 시간으로 바뀌고 나서 계속 시간이 업데이트됩니다.. 이번엔 ReadTest예제를 불러와 아두이노 101에 업로드 시켜주면.. 역시 현재 시간이 넘어오네요.. 내부적으로 날짜및 시간을 EEPROM 같은 곳에 저장을 시키지만.. 내장 배터리는 없어 반쪽 RTC가 아닌가 싶어 아두이노 케이블을 분리시켰다가 어느정도 시간이 흐른후 다시 연결해보았습니다.. 결과는.. 내부적으로 EEPROM같은 곳에 저장시키는게 아니라.. RAM에만 잠시 저장해두기때문에 전원을 재연결해주면 초기화 되나봅..