복잡하게 디바이스 드라이버까지 작성하지 않고 간단하게 mmap을 사용하여 레지스터에 접근하여 LED를 제어해보려고 합니다. 핀번호 6번 그라운드와 핀번호 12번 GPIO18에 LED를 연결해주었습니다. BCM2835 데이터 시트에 따르면 LED를 켜고 끄는 데에는 다음 레지스터들을 사용하면 됩니다. 라즈베리파이3에선 BCM2837이지만 동일하게 동작했습니다. GPFSELx – GPIO핀을 Input 또는 Ouput으로 사용할지 결정. GPSETx – GPIO핀을 하이레벨로 만들어줌. Led가 켜진 상태. GPCLRx – GPIO핀을 로우 레벨로 만들어줌. Led가 꺼지는 상태. GPIO Base Address가 아래처럼 0x 7E20 0000으로 나와 있지만 BCM2835 데이터시트의 1.2.3 ARM ..
아두이노 우노에 LED를 연결하여 깜박이게 만드는 방법을 다루고 있습니다. 최초 작성 2014. 12. 6최종 작성 2019. 8. 17 이번 시간에는 LED를 깜빡이게 하는 예제를 소개합니다. Arduino IDE에서 코드를 작성하여 하드웨어를 제어하는 방법을 엿볼 수 있는 간단한 예제입니다. 디지털 핀을 출력으로 설정하고 핀의 전압값을 High(5V) 또는 Low(0V)를 설정하여 핀에 연결된 외부 디바이스나 LED를 제어할 수 있습니다. 핀에 LED를 연결하고 핀의 전압값을 High(5V)로 설정하면 LED가 켜지고, 핀의 전압값을 Low(0V)로 설정하면 LED가 꺼지게 됩니다.아두이노 우노에는 13개의 디지털 핀이 있습니다. 디지털 입력 13번에 LED를 저항 220옴을 거쳐 연결하고 반대 쪽은..
웹용 언어인줄로만 알았던 자바스크립트인데 하드웨어 제어도 됩니다. 참 신기합니다. 어떤 장점이 있어서 사용하게 되었는지도 궁금하구요.. 찾아보면 Node.js나 비슷한 류를 기반으로 하는 임베디드 보드들도 꽤 있습니다.. 2015.11.272109. 08.12 - node 설치 방법 변경 문제없이 동작하는 Node.js 버전이 정해져 있어서 해당 버전을 사용해야 합니다. onoff 깃허브 페이지에서 확인 가능합니다. 주소는 참고 [2]에 있습니다. 다음과 같은 방법을 Node.js 4.8.4를 설치해줍니다. $ sudo npm cache clean -f $ sudo npm install -g n $ sudo n 4.8.4 문제 없으면 다음처럼 버전으로 4.8.4가 출력됩니다. $ node -vv4.8.4..
Node.js를 설치하는 방법은 아래 글을 참고하세요.. [웹/Node.js] - Ubuntu 14.04에 Node.js 설치 및 간단한 예제 아두이노를 피시와 연결하고 아두이노 IDE를 실행시킵니다. 메뉴에서 파일-예제-Firmata-StandardFirmata를 선택하여 프로그램을 불러온 후, 업로드 버튼을 눌러서 아두이노에 업로드합니다.. LED를 13번에 연결해줍니다. 이제 디렉토리를 하나 만들고 필요한 johnny-five 패키지를 설치해줍니다. webnautes@webnautes-PC ~ $ mkdir johnny-five && cd johnny-fivewebnautes@webnautes-PC ~/johnny-five $ npm install johnny-five led.js 라는 이름으로 아..
Node.js를 라즈베리파이에 설치하는 방법은 아래 글을 참고하세요 [임베디드/Raspberry Pi] - Node.js를 이용하여 라즈베리파이2에 연결된 LED 제어하기 새로운 폴더를 생성한 후 ..필요한 Node.js용 패키지를 설치합니다. mkdir test & cd testnpm install onoff 그리고 나서 다음 두 개의 파일을 작성합니다. index.html LED TEST LED TEST ON: OFF: server.jsvar http = require('http'); var fs = require('fs'); var Gpio = require('onoff').Gpio, led = new Gpio(21, 'out' ); http.createServer(function (request,..
LED의 밝기가 점점 밝아지다가 다시 점점 어두워지는 것을 세번 반복하는 예제입니다. #-*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode( GPIO.BOARD ) #12번핀은 출력모드로 설정 GPIO.setup(12, GPIO.OUT) pwm = GPIO.PWM(12,50) #50hz pwm.start(0) for i in range(0,3): for dc in range(0,101,5): pwm.ChangeDutyCycle(dc) time.sleep(0.1) for dc in range(100,-1,-5): pwm.ChangeDutyCycle(dc) time.sleep(0.1) pwm.stop() GPIO.cleanup()
LED는 12번핀에 연결하고 버튼은 11번핀에 연결한 상태입니다. 이제 버튼을 누를 때마다 LED가 켜지도록 만들 것입니다. #-*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode( GPIO.BOARD ) #12번핀은 출력모드로 설정 GPIO.setup(12, GPIO.OUT) #11번핀은 입력모드로 설정 GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_UP) while True: input_state = GPIO.input(11) if input_state == False: GPIO.output(12, GPIO.HIGH) else: GPIO.output(12, GPIO.LOW) time.sleep..
6번 핀에 LED 음극을 연결하고 12번 핀에 LED의 양극을 연결합니다. LED가 3번 반복해서 깜박이도록한 예제입니다. #-*- coding: utf-8 -*- import RPi.GPIO as GPIO import time #라즈베리파이 보드핀 넘버를 사용 GPIO.setmode( GPIO.BOARD ) #12번 핀을 출력모드로 설정한다. GPIO.setup( 12, GPIO.OUT ) for i in range (0,3): GPIO.output( 12, GPIO.HIGH ) time.sleep(1) GPIO.output( 12, GPIO.LOW ) time.sleep(1) GPIO.cleanup()
예전에 올렸던 글들을 다시 읽어보며 정리하다말고.. 문뜩 떠오르는게 생겨서 만들어 봤습니다..바로 스위치를 돌리면 점점 밝아지는 전구 효과를 만들어 보는 것입니다.. [임베디드/Arduino Uno] - 아두이노에서 가변저항 사용하기 [임베디드/Arduino Uno] - 아두이노에서 PWM을 이용하여 LED 밝기 조정하기 가변저항의 양끝은 각각 5V와 그라운드에 연결하고 중앙은 a0에 연결합니다. 그리고 LED의 +극은 11번에 연결하고 -극은 그라운드에 연결해주었습니다. 동영상으로 찍어둘까 하다가.. 너무 허접한거 같아서 소스코드만 올립니다.... : ) void setup() { // 9600bps로 시리얼 속도를 설정 Serial.begin(9600); } void loop() { // 아날로그핀 ..
비글본 블랙 P8의 2번과 8번에 LED를 연결하고 10번핀에는 스위치를 아래 회로처럼 연결했습니다. 스위치를 눌러서 Gpio2_4인 10번핀에 5V가 흐르게 되면 Gpio2_3인 10번핀의 값을 5V(?)로 변경해서 LED가 켜지도록 해보았습니다. 이미지 출처 : http://www.ctrlinux.com/blog/?p=87 AM335x Sitara™ Processors데이터 시트의 Memory Map에서 확인한 GPIO2 시작 주소는 0x481AC000이고 크기는 4K입니다. GPIO를 입력으로 사용할지 출력으로 사용할지 결정하기 위해서 필요한 레지스터로 원하는 비트를 0으로 설정하면 출력상태가 되고 디폴트 값은 입력입니다. LED가 연결되어 있는 8번핀은 출력상태로 만들고 스위치가 연결되어 있는 1..