현재 위치
홈▲ 위 영상 : EN25-Absolute로 냉장고 문 각도를 재서 열림·닫힘을 음성으로 알려 주는 예제입니다.
전원을 꺼도
각도를 기억하는 엔코더
|
0.1°
분해능
|
0~359.9°
절대 각도
|
100 Hz
각도 · 회전수 · RPM
|

EN25-Absolute 한눈에 보기
EN25-Absolute는 드림솔루션이 국내에서 만드는 Ø25mm 마그네틱 앱솔루트(절대값) 로터리 엔코더입니다. 전원을 다시 켜도 원점 복귀 없이 0~359.9° 절대 각도를 0.1° 분해능으로 바로 출력하고, 누적 회전수 · RPM과 함께 RS232 · TTL 시리얼(38400bps, 100Hz)로 보냅니다. 아두이노 우노에는 바로, PC · 파이썬 · 라즈베리파이에는 USB TO RS232/TTL 컨버터로 연결하며, 구성품은 엔코더와 커넥터 와이어 30cm이며, 예제 코드와 영상을 무료로 제공합니다.
정보 기준 2026년 11월 · 자세한 수치는 아래 「사양」 표에 있습니다.
| 이런 분께 딱 맞아요
· 문 · 레버 · 회전대 · 관절 위치
· 전원이 나갔다 와도 위치 확인
· PC 파이썬으로 기록
| 이럴 땐 다른 모델
· 회전량 · 속도만 → EN25-ABZ-256
· 각도만 저렴하게 → AN25-Analog
· 누적 회전수까지 기억 → 문의
|
EN25-Absolute로 만들 수 있는 것
▶ 냉장고 문 열림 감지
|
▶ 각도로 서보 제어
|
▶ 바퀴 이동 거리
|
내게 맞게 고르기 (함께 사는 부품)

| PC로 바로 확인 | 엔코더 + USB 컨버터 | 92,400원 |
| 냉장고 문 감지 예제 그대로 | 엔코더 + USB 컨버터 + SB41 자석형 + 링크 | 130,900원 |
| 장비 · 로봇 관절 (아두이노 직결) | 엔코더 + 플랜지 CF-41 | 91,300원 |
EN25-Absolute를 PC(파이썬)에 연결하면 이렇게 나옵니다
import serial # pip install pyserial
ser = serial.Serial('COM6', 38400, timeout=1) # 내 PC의 COM 번호
while True:
d = ser.readline().decode(errors='ignore').strip().split(',')
if len(d) == 4 and d[0] == '$ANG': print('각도', d[1], '회전수', d[2], 'RPM', d[3])
EN25-Absolute 연결 방법 (선 색상 · 아두이노 우노 · PC · 라즈베리파이)
| 선 색상 | 신호 명칭 (Signal) |
|---|---|
| 빨강 | VCC (DC 5V 전원) |
| 초록 | GND (0V Ground) |
| 흰색 | RS232 출력 (PC · 장비의 RS232 포트) |
| 노랑 | TTL 출력 (5V 레벨 · 아두이노 RX · USB 컨버터 RX) |
| 어디에 연결? | 방법 |
|---|---|
| 아두이노 우노 | 노란선 → RX(0번 핀), 빨강 5V · 초록 GND (전원은 DC 어댑터 권장). 코드를 올릴 때는 노란선을 잠시 빼고, 업로드가 끝나면 다시 꽂으세요. |
| PC · 파이썬 · 테라텀 | 흰색선(RS232) → USB TO RS232/TTL 컨버터 RX(RS232), 빨강 5V · 초록 GND (위 추가상품 · 상품 보기) |
| 라즈베리파이 | USB TO RS232/TTL 컨버터로 USB 포트에 연결하는 방법이 가장 쉽고 안전합니다 (/dev/ttyUSB0) — 예제 6 파이썬 코드 |
EN25-Absolute 사양 (전기 · 출력 · 기계 · 커넥터)
| 전기 | |
|---|---|
| 전원 | DC 5V ±5% |
| 소비 전류 | 30 mA |
| 출력 · 통신 | |
| 출력 값 | 절대 각도 · 누적 회전수 · RPM |
| 절대 각도 | 0 ~ 359.9° (분해능 0.1°, 정지 시 ±0.2° 흔들림) |
| 누적 회전수 | −90,000 ~ 90,000 rev (전원 OFF 시 초기화) |
| RPM | 0 ~ 5,000 |
| 통신 | RS232 · TTL(5V) 동시 출력, 38400 bps |
| 출력 주기 | 10 ms (100 Hz) |
| 기계 | |
| 바디 | 알루미늄 Ø25 mm |
| 축 | 스테인리스 Ø6 mm · 듀얼 볼베어링 |
| 축 허용 하중 | 1 kgf |
| 축 관성모멘트 | 1.1 g·cm² |
| 최대 허용 회전수 | 5,000 rpm |
| 무게 | 37 g |
| 커넥터 · 설정 | |
| 핀 배열 | 1: 5V · 2: 0V · 3: RS232 · 4: TTL |
| 기본 와이어 | 30 cm (UL1007 AWG26) |
| 영점(0°) 변경 | 영점 스위치를 누른 채 전원 ON → 약 10초 뒤 손을 떼면 현재 위치가 0° |
드림솔루션 엔코더 · 각도센서와 비교 (EN25-Absolute를 고르는 이유)
| EN25-Absolute (현재 상품) | EN25-ABZ-256 (증분형 엔코더) | AN25-Analog (각도센서) | AN25-PWM (각도센서) | |
|---|---|---|---|---|
| 전원을 껐다 켜면 | 각도 그대로 출력 | 0부터 다시 셈 (Z상으로 원점 다시 잡기) | 각도 그대로 출력 | 각도 그대로 출력 |
| 출력 | 디지털 시리얼 (RS232 · TTL) | A · B · Z 펄스 | 전압 0.5 ~ 4.5V | PWM 10 ~ 90% (1kHz) |
| 한 번에 받는 값 | 각도 + 누적 회전수 + RPM | 펄스 수 | 각도 | 각도 |
| 각도 읽는 방법 | 문자로 온 숫자를 그대로 사용 | 펄스를 세어 코드로 계산 | analogRead 값을 각도로 계산 (ADC 최솟값 · 최댓값 맞춤) | 펄스 폭을 재서 각도로 계산 |
| 분해능 | 0.1° | 256 P/R (4체배 1,024카운트 · 약 0.35°) | 센서 칩 12bit (읽는 보드의 ADC에 따라 달라짐) | 센서 칩 12bit |
| 전원 | DC 5V, 30mA | DC 3.3V | DC 5V, 20mA | DC 5V, 20mA |
| 가격 (부가세 포함) | 82,500원 | 41,250원 | 41,250원 | 41,250원 |
EN25-Absolute 자주 묻는 질문
Q. 앱솔루트 엔코더와 증분형(인크리멘탈) 엔코더는 무엇이 다른가요?
A. 증분형은 A · B 펄스를 세어 움직인 양만 알기 때문에 전원을 켤 때마다 원점을 다시 잡아야 합니다. 앱솔루트인 EN25-Absolute는 전원을 켜는 즉시 현재 각도를 출력합니다.
Q. 전원을 끄면 무엇이 남고 무엇이 지워지나요?
A. 한 바퀴 안의 절대 각도(0~359.9°)는 켜는 즉시 나오고, 누적 회전수는 0으로 초기화됩니다.
Q. 아두이노에는 어떻게 연결하나요?
A. 빨강 5V, 초록 GND, 노란선(TTL)을 아두이노 RX에 연결합니다. 38400bps로 받은 문자열을 쉼표로 나누면 됩니다(예제 3).
Q. 아두이노에 코드를 올리는데 업로드가 안 돼요.
A. 우노는 RX 핀을 USB와 같이 씁니다. 노란선을 잠시 빼고 업로드한 뒤 다시 연결하세요.
Q. PC에서 바로 볼 수 있나요?
A. USB TO RS232/TTL 컨버터를 연결하면 테라텀 · 파이썬으로 바로 볼 수 있습니다(예제 1·2). 파이썬은 pip install pyserial 후 사용하세요.
Q. 라즈베리파이에도 쓸 수 있나요?
A. 네. TTL이 5V라 GPIO에 직접 연결하면 입력 핀이 손상될 수 있으니, USB 컨버터로 USB 포트에 연결하세요(예제 6 파이썬 코드).
Q. 12V · 24V 전원으로 쓸 수 있나요?
A. DC 5V 전용(±5%)입니다. 12V · 24V 장비에서는 5V로 낮춰 주는 강압 컨버터를 사용하세요.
Q. 여러 개를 동시에 쓸 수 있나요?
A. 엔코더 1개당 시리얼 포트 1개가 필요합니다. 아두이노 메가처럼 시리얼 포트가 여러 개인 보드나 USB 컨버터 여러 개를 권장합니다.
Q. 영점(0°)을 원하는 위치로 바꿀 수 있나요?
A. 영점 스위치를 누른 채 전원을 켜고 약 10초 뒤 손을 떼면 현재 위치가 0°가 됩니다(영점 설정 영상).
Q. 대량 구매나 세금계산서도 되나요?
A. 네. 세금계산서 발행이 가능하고, 대량 구매는 톡톡 · 카카오톡으로 문의해 주세요.
도면 · 자료 (치수 도면 · 3D · 영점 스위치 · 데이터시트)펼치기 ▾
함께 쓰는 부품 (USB 컨버터 · 브라켓 · 플랜지 · 커플링 · 와이어)펼치기 ▾
![]() | USB TO RS232/TTL 컨버터 (PC 연결 시 필수)
CH340 · SP3232, 점퍼케이블 20cm 포함 — 위 추가상품에서 선택
|
![]() | 센서 브라켓 SB25 (볼트 고정형)
엔코더를 축에 맞춰 세워 고정 — 추가상품 선택 가능
|
![]() | 센서 브라켓 SB41-Magnetic (자석형)
철판에 자석으로 붙여 고정 (냉장고 예제) — 추가상품 선택 가능
|
![]() | 플랜지 커플링 CF-41
엔코더를 판재·기구에 고정 — 위 추가상품에서 선택
|
![]() | 모터 커플링
모터 축과 엔코더 축을 연결 (BP25-CR25-BP25 등)
|
![]() | 추가 와이어
50 · 70 · 100 cm — 위 추가상품에서 선택
|
예제 7가지 (냉장고 문 감지 · 파이썬 · 아두이노 · 라즈베리파이)펼치기 ▾
★냉장고 문 열림 · 닫힘 감지와 음성 안내펼치기 ▾
준비물: 엔코더, USB 컨버터, 링크, SB41 자석형 브라켓, PC | 영상 · 설치 사진 · 웹 체험 · 파일 받기
1테라텀으로 값 보기펼치기 ▾
준비물: 엔코더, USB 컨버터, PC | 영상 · 연결도 · 출력 화면
2파이썬으로 값 읽기펼치기 ▾
준비물: 엔코더, USB 컨버터, PC | 영상 · 파이썬 코드 · 출력 화면
#로터리 앱솔루트 엔코더 EN25-Absolute
import serial
ser = serial.Serial('COM6',38400,timeout=1)
while True:
ang=ser.readline() #EN25-Absolute RS232
b=ang.decode("utf-8") #bytes->str
c=b[:-2] #\r\n 문자열을 버림
print(ang)#EN25-Absolute 출력값
#print(c)
d=c.split(',') #,기호를 기준으로 문자열 나눔
deg=d[1] #angle 문자열
rev=d[2] #누적 회전수 문자열
rpm=d[3] #rpm 문자열
ANG = "degree"+":"+d[1]+","+"rev"+":"+d[2]+","+"RPM"+":"+d[3]#문자열 더해서 연결하기.
print(ANG)#문자열 자료형으로 보이기
#Degree=float(d[1]) #절대 각도 Degree 실수형
#print(Degree)
#Rev=float(d[2]) #누적 회전수 실수형
#print(Rev)
#RPM=float(d[3]) #RPM 실수형
#print(RPM)
#Run Module하면 프로그램이 계속 도는데 IDLE Shell창에서 멈추고 싶으면 Ctrl+C를 눌러서 멈추기.3아두이노로 값 읽기펼치기 ▾
준비물: 엔코더, 아두이노 우노, PC | 영상 · 회로도 · 아두이노 코드
//en25-absolute-2.ino
//주의사항
//전압이 부족하면 센서가 다운되서 아두이노전원은 아답터로 연결하기를 권장한다.
//코드 업로드시 아두이노 RX핀을 연결하지 않고 업로드를 완료후 RX핀을 연결한다.
float Degree = 0;
float Rev = 0;
int RPM = 0;
void setup() {
Serial.begin(38400);
}
void loop() {
if(Serial.available()){//EN25-Absolute에서 degree,누적 회전수, RPM 읽어오기
String inString = Serial.readStringUntil('\n');
int index1 = inString.indexOf(',');
int index2 = inString.indexOf(',',index1+1);
int index3 = inString.indexOf(',',index2+1);
int index4 = inString.length();
float Degree = inString.substring(index1+1, index2).toFloat();
float Rev = inString.substring(index2+1,index3).toFloat();
int RPM = inString.substring(index3+1,index4).toInt();
Serial.print("Degree:");
Serial.print(Degree,1);
Serial.print(',');
Serial.print("Rev:");
Serial.print(Rev,3);
Serial.print(',');
Serial.print("RPM:");
Serial.println(RPM);
}
}4엔코더 각도로 서보모터 제어펼치기 ▾
준비물: 엔코더, 아두이노 우노, 서보모터 | 영상 · 회로도 · 아두이노 코드
#include <Servo.h>
//주의사항
//전압이 부족하면 센서가 다운되서 아두이노전원은 아답터로 연결하기를 권장한다.
//코드 업로드시 아두이노 RX핀을 연결하지 않고 업로드를 완료후 RX핀을 연결한다.
Servo myservo;
//전역변수 정의. loop함수안에서 정의된 변수는 함수밖에서 사용할 수 없다.
float angle = 0; //서보모터 각도값
float Degree = 0;
float Rev = 0;
int RPM = 0;
void setup() {
Serial.begin(38400);
myservo.attach(9);
}
void loop() {
if(Serial.available()){//EN25-Absolute에서 degree,누적 회전수, RPM 읽어오기
String inString = Serial.readStringUntil('\n');
int index1 = inString.indexOf(',');
int index2 = inString.indexOf(',',index1+1);
int index3 = inString.indexOf(',',index2+1);
int index4 = inString.length();
float Degree = inString.substring(index1+1, index2).toFloat();
float Rev = inString.substring(index2+1,index3).toFloat();
int RPM = inString.substring(index3+1,index4).toInt();
angle=Degree;
Serial.print("Degree:");
Serial.print(Degree,1);
Serial.print(',');
Serial.print("Rev:");
Serial.print(Rev,3);
Serial.print(',');
Serial.print("RPM:");
Serial.println(RPM);
}
myservo.write(angle);
}5파이썬으로 바퀴 이동 거리 측정펼치기 ▾
준비물: 엔코더, USB 컨버터, PC, 바퀴(BP-Wheel-40 · BP-Hub) | 영상 · 연결 사진 · 파이썬 코드
#앱솔루트 로터리 엔코더 EN25-Absolute
import serial
ser = serial.Serial('COM5',38400,timeout=1) #시리얼 포트 입력하기
while True:
ang=ser.readline() #EN25-Absolute RS232
b=ang.decode("utf-8") #bytes->str
c=b[:-2] #\r\n 문자열을 버림
#print(ang)#EN25-Absolute 출력값
#print(c)
d=c.split(',') #,기호를 기준으로 문자열 나눔
deg=d[1] #angle 문자열
rev=d[2] #누적 회전수 문자열
rpm=d[3] #rpm 문자열
ANG = "Degree"+":"+d[1]+","+"Rev"+":"+d[2]+","+"RPM"+":"+d[3]#문자열 더해서 연결하기.
#print(ANG)#문자열 자료형으로 보이기
#Degree=float(d[1]) #절대 각도 Degree 실수형
#print(Degree)
Rev=float(d[2]) #누적 회전수 실수형
print(Rev)
#RPM=float(d[3]) #RPM 실수형
#print(RPM)
Distance=Rev*48*3.14 #바퀴 외경48mm, 바퀴가 굴러간 거리 측정. 48*3.14=150.72
print(Distance)
#Run Module하면 프로그램이 계속 도는데 IDLE Shell창에서 멈추고 싶으면 Ctrl+C를 눌러서 멈추기.6라즈베리파이로 각도 기록 · 문 열림 알림펼치기 ▾
준비물: 엔코더, USB 컨버터, 라즈베리파이 | 연결 방법 · 파이썬 코드
sudo apt install python3-serial · 실행: python3 042_라즈베리파이_예제-1.py# EN25-Absolute 라즈베리파이 예제 : 각도 기록(CSV) + 문 열림 알림
# 연결 : 엔코더 → USB TO RS232/TTL 컨버터 → 라즈베리파이 USB 포트
# 빨강 5V · 초록 GND · 노랑(TTL) → 컨버터 RX(TTL)
# 준비 : sudo apt install python3-serial
# 실행 : python3 042_라즈베리파이_예제-1.py (Ctrl+C로 종료)
# 결과 : 같은 폴더에 angle_log.csv 저장, 문이 OPEN_DEG 이상 열리면 화면에 알림
import csv
import time
from datetime import datetime
import serial
PORT = "/dev/ttyUSB0" # 컨버터 포트 (ls /dev/ttyUSB* 로 확인)
OPEN_DEG = 10.0 # 이 각도 이상이면 '열림'
LOG_SEC = 1.0 # CSV 기록 간격(초)
ser = serial.Serial(PORT, 38400, timeout=1)
is_open = False
last_log = 0.0
with open("angle_log.csv", "a", newline="", encoding="utf-8") as f:
w = csv.writer(f)
if f.tell() == 0:
w.writerow(["시간", "각도", "누적회전수", "RPM", "상태"])
print(f"{PORT} 연결됨. 문 열림 기준 {OPEN_DEG}°")
while True:
d = ser.readline().decode(errors="ignore").strip().split(",")
if len(d) < 4 or d[0] != "$ANG":
continue
deg, rev, rpm = float(d[1]), float(d[2]), int(d[3])
now_open = OPEN_DEG <= deg <= 360 - OPEN_DEG # 0° 근처 양쪽은 닫힘
if now_open != is_open: # 상태가 바뀌는 순간 알림
is_open = now_open
print(datetime.now().strftime("%H:%M:%S"), "문 열림!" if is_open else "문 닫힘", f"({deg:.1f}°)")
if time.time() - last_log >= LOG_SEC:
last_log = time.time()
w.writerow([datetime.now().strftime("%Y-%m-%d %H:%M:%S"), deg, rev, rpm, "열림" if is_open else "닫힘"])
f.flush()이렇게 구매하세요
배송안내
배송비
기본배송료는 3,400원 입니다. (도서,산간,오지 일부지역은 배송비가 추가될 수 있습니다) 제품에 따라 배송비가 달라집니다.
배송지역 |
|---|
| 전국(제주 및 섬지역, 기타 산간/도서지역 배송가능) 제주도 및 기타 섬지역은 항공료 3,000원이 추가됩니다. |
배송기간 |
평일 오전 9시부터 오후 1시까지 주문 및 결제를 완료해주셔야 당일발송 됩니다. 평균배송기간은 2~3일정도 소요됩니다.
주문제작 또는 구매대행 상품의 경우 다소 늦어질수 있습니다.[배송예정일은 제작과정 및 해외배송기간에 따른 유동성이 발생하므로 평균 배송일과는 차이가 발생할 수 있습니다.] |
교환 및 반품안내
제품 수령 후 7일(주말/공휴일 포함)이내 다음 사항의 경우 취소, 교환, 환불, AS 가능합니다. |
|---|
[취소, 교환, 환불, AS 가능] 수령한 제품의 불량, 파손, 오 배송 등으로 사용이 불가한 경우 고객변심인 경우 제품 포장을 개봉하지 않고, 사용하지 않은 상태인 경우 취소·교환·환불 및 A/S 배송비 안내 1. 고객 변심에 의한 취소·교환·환불 제품 포장을 개봉하지 않고 사용하지 않은 상태에 한하여 가능합니다. 이 경우 왕복 배송비는 고객님 부담입니다. 2. 제품 불량에 의한 취소·교환·환불 및 A/S 제품 불량으로 확인된 경우, 제품 수령일로부터 7일 이내(주말·공휴일 포함) 취소·교환·환불 또는 A/S를 요청하시면 왕복 배송비는 당사에서 부담합니다. |
| [취소, 교환, 환불, AS 불가] 제품 수령일 기준 7일 (주말, 공휴일 포함) 초과한 경우 제품 및 포장을 파손, 훼손, 변형 시켜 재화의 가치를 하락시키거나, 사용자 과실로 인하여 제품 불량이 발생한 경우 (복사가 가능한 1회성 제품 (예: 서적,USB 모듈 및 키트 종류), 전선, 주문제작 상품, 교육 수강신청상품, 수동소자, 소켓, LED제품, 해외구매 상품은 절대 교환, 취소, AS 불가) 드림솔루션에 사전 안내나 확인없이 반품, 교환, AS 반품 보내는 경우 |
| 반품, 교환, AS 절차 및 상세내용은 드림솔루션 홈페이지 - 고객센터 - 취소/교환/환불 및 AS 상세설명을 반드시 참고하시길 부탁드립니다. |
환불안내
AS안내
- 소비자분쟁해결 기준(공정거래위원회 고시)에 따라 피해를 보상받을 수 있습니다.
- A/S는 판매자에게 문의하시기 바랍니다.
이미지 확대보기
앱솔루트 로터리 엔코더 EN25-Absolute 절대각도 센서 0.1° 아두이노/파이썬 예제 제공(커넥터 및 와이어 포함)
비밀번호 인증
글 작성시 설정한 비밀번호를 입력해 주세요.
확인장바구니 담기
상품이 장바구니에 담겼습니다.
바로 확인하시겠습니까?
찜 리스트 담기
상품이 찜 리스트에 담겼습니다.
바로 확인하시겠습니까?






















