검색

저자의 재개 및 생물 내 취미에 관련된 기사의 커플 - 로봇
호주로 이민에 대한 내 노출. 오직 러시아. 해결 일상적인 문제 요리법
리눅스에 관련된 글 윈도우 관련 게시물
소프트웨어에 관련된 게시물 하드웨어에 대한 정보를 많이
당신이 유용하게 찾을 수있는 다른 도구 다양한 웹 기술에 대한 게시물
메뉴의 나머지에 맞지 않아 모든 이 블로그에 대한 RSS 피드

태그 클라우드

기록 보관소

링크

안드레이 Mikhalchuk의 블로그

English flagItalian flagKorean flagChinese (Simplified) flagPortuguese flagGerman flagFrench flagSpanish flagJapanese flagRussian flagDanish flagFinnish flagHebrew flag

삶에 대해 Technoblog

2011년 6월 23일 제어 RGB는 PICAXE-08을 사용하여 LED가 : 소프트웨어 PWM의 기본

Driving RGB LED with PICAXE-08M

운전 RGB는 PICAXE-08M과 함께 LED가

난 아주 꽉 공간으로 RGB LED와 마이크로 컨트롤러를 포장과 관련된 새로운 RTFMs의 에피소드 중이야. 내가 사용하기로 결정 마이크로 컨트롤러는 PICAXE-08입니다. 나는 세 가지 이유로 그것을 선택 :
- 난 상자 하나를 가지고
- 그것은 내가 (높은 고도 풍선 프로젝트)에 그것을 가지고 무엇을위한 매우 적합하지 보이는대로 그것에 대한 다른 계획이 없었
- 희미한 RGB LED에 사용하면 도전입니다


전 한동안 검색좀 및 RGB LED와 PICAXE-08M 작품이 함께 내가 계획대로되도록 할 해결책을 찾을 수 없습니다. LED의 세 가지 색상 사이를 전환할 것이있는 전혀 문제가 아니지만, 혼합 색상이 칩과 평범하지 않습니다. 나는 밝기 / LED가 진정한 RGB 믹스를 만들 수 있도록 디밍 256 순서와 별도로 각 색상을 제어할 싶었어요. 이것은 일반적으로 펄스 폭 변조 (PWM)가 아닌 예를 들어 Arduino 문제로 이루어진다. ATMega328 6 PWM 채널이 있으므로 두 개의 RGB LED를 운전하실 수 있습니다. 임무가 불가능할지는 모르 있​​도록하지만 PICAXE08 단 한 PWM 채널이 있습니다. 저는 의외로 잘 PICAXE08 제한된 성능을 제공 일하는 PWM 소프트웨어를 구현함으로써 문제를 해결. 여기 제 코드입니다 :

# REM
무작위로 그리고 독립적으로 제어하는​​ 간단한 PICAXE 08m 기본 프로그램
RGB LED의 모든 3 색의 밝기
진정 patterms을 (무드 램프에서와 같은) 만들기.
자세한 내용은 제 블로그 http://andrey.mikhalchuk.com을 참조하십시오

당신은이 코드를 원하는 건 뭐든지 할 자유예요, 그냥 제 블로그 http://andrey.mikhalchuk.com를 언급
코멘트에, 그래서 사람들은 업데이트된 코드를 찾을 수 있습니다. 감사합니다!

이 코드가 품질을 충족하지 않는 경우이 PICAXE에 대한 내 첫 프로그램으로, 사과
기대와 얼마나 좋은 코드에 대한 harms 자신의 감정이 :) 같이 표시됩니다
# endrem

# picaxe 08m
setfreq M4

; 구성
심볼 속도 = 3; 높은 색 변화 속도 값이 작은
심볼 SPEED_VARIATIONS = 7; 그것이 얼마나 다양한 색상의 변화 속도를 사용해야 정의

;지도 핀
기호 RED0_PIN = 0
기호 GREEN0_PIN = 1
기호 BLUE0_PIN = 2

; 가상의지도 핀 값
; 핀 값은 LED의 현재 밝기입니다
기호 red0 = B0
기호 green0는 = 지하 1 층
기호 blue0 = B2

; 가상의지도 pin_deltas
; 델타 밝기 변화의 속도입니다
기호 red0_delta은 = B3
기호 green0_delta = B4
기호 blue0_delta은 = B5

; 서브루틴을위한 임시 값
기호 delta_w은 = W3
심볼 TMP는 = B7

; 서브루틴 매개 변수
기호 핀 = B8
기호 발은 = B9
기호 델타 = B10

; 모두 초기화
red0 = 0
green0 = 70
blue0 = 200
red0_delta = 1
green0_delta = 5
blue0_delta = 9

; 서보 모드를 시작
; "servopos RED0_PIN, 255이"오프 LED를 렌더링합니다!
; "servopos RED0_PIN, 0은"정말 희미하게하지만, 점등. 거기가 PICAXE의 버그?
서보 RED0_PIN, 255
서보 GREEN0_PIN, 255
서보 BLUE0_PIN, 255

;이 코드는 arduino의 루프 () 같다
주 :
; 함수 적은 환경에서 함수 호출을 에뮬레이트
핀 = RED0_PIN : 발 = red0 : 델타 = red0_delta : gosub set_color_val : red0 = 발 : red0_delta = 델타
핀 = GREEN0_PIN : 발 = green0 : 델타 = green0_delta : gosub set_color_val : green0 = 발 : green0_delta = 델타
핀 = BLUE0_PIN : 발 = blue0 : 델타 = blue0_delta : gosub set_color_val : blue0 = 발 : blue0_delta = 델타
고토 메인

,이 잠수함은 LED와 삼각주의 밝기를 조정합니다
set_color_val :
발 = 발 + 델타
만약 델타 <128과 발 <델타 후; fwd
랜덤 delta_w
델타 = 델타 %의 SPEED_VARIATIONS + 1
델타 = 255 - 델타
발 = 255
elseif 델타> = 128와 발> 다음 = 델타; 역방향
랜덤 delta_w
델타 = 델타 %의 SPEED_VARIATIONS + 1
발 = 0
endif
tmp를 = 발 - 1; servopos 버그 해결
; 그래, servopos는 첫 번째 인수로 전용 상수 걸립니다 : (
핀 = RED0_PIN 후 경우
servopos RED0_PIN, tmp를
그리고 elseif 핀 = GREEN0_PIN
servopos GREEN0_PIN, tmp를
그리고 elseif 핀 = BLUE0_PIN
servopos BLUE0_PIN, tmp를
endif
일시 정지 속도
반환

; 데모를 위해 YouTube에 제 다른 블로그 http://rtfms.com 및 비디오 블로그 RTFMs를 참조
, 이것은 에피소드 # 7으로 덮여 있습니다 : 마이크로 컨트롤러는 보석을 충족

이 코드에 대한 몇 가지 참고 사항 :
- 그것은 'RGB의 무드 램프 "를 구현합니다. 여러분의 필요를 위해 그것을 바꿀 부담
- PICAXE는 루핑 항상 유지 이후로 전력 소비가 끔찍하다 의심. 그래도 그것은 RTFMs 비디오 블로그 에피소드 # 7에 나타난 두명의 작은 건전지으로 1 시간 이상하면 전원에게 좋은거야
- PICAXE08의 성능은 그저 그렇다입니다. 당신 RTFMs 비디오에서 볼 수 있듯이 빛이 약간 반짝입니다. 당신은 아마 직접 LED를 보는 동안에 그것을 발견하지 않지만 비디오 카메라는 효과가 눈에 띄게 만듭니다. 무드 램프에 사실조차 그것을 :) 좋아
- 프로그램 크기가 146 바이트 (08에서 사용할 수있는 256의 아웃)입니다. 당신은 아마 그것을 비트를 최적화할 수 있습니다.
- 여기서 언급 무드 램프 프로젝트에 대한 RTFMs 비디오는 조금 나중에 발표될 것입니다

이 게시물에 게시된 하드웨어 , 비법 특강 , 기타 .

코멘트가 없습니다

지금까지 코멘트가 없습니다

회신을 남겨주

사이트맵 (다) 안드레이 Mikhalchuk, 2005년부터 2008년까지