산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 나노로 저항 정렬하기: 간편하고 시간 절약되는 방법

부품 및 소모품

아두이노 나노 R3×1
저항 10kΩ×1
저항 1kΩ×1
저항 100Ω×1
저항 100kΩ×1
저항 1MΩ×1
ElectroPeak 0.96" OLED 64x128 디스플레이 모듈×1
점퍼 와이어 (일반)×1

필요한 도구 및 기계

3D 프린터 (일반)
납땜 인두 (일반)

앱 및 온라인 서비스

아두이노 IDE

프로젝트 소개

매번 프로젝트를 마친 후 이런 상황에 직면한 적 있으신가요?

아두이노 나노로 저항 정렬하기: 간편하고 시간 절약되는 방법

색상 코드를 일일이 확인해 저항을 분류하기엔 너무 게으르신가요? 멀티미터 사용조차 귀찮으신가요? 그렇다면 '궁극의 게으른 옴미터'가 해결책이 될 수 있습니다!

아두이노 나노로 저항 정렬하기: 간편하고 시간 절약되는 방법

알려진 저항값 몇 개, 아두이노, 디스플레이(I2C OLED 사용)만 있으면 미분류 저항값을 측정하는 간단한 옴미터를 만들 수 있습니다.

작동 원리: 전압 분배기와 자동 레인지 전환

전압 분배기 공식을 이용해 알려진 저항(R_known)과 미지의 저항(R_unknown)을 직렬로 연결해 미지의 저항값을 구합니다.

Vout = Vin × R_unknown / (R_known + R_unknown)

하지만 두 저항값 차이가 클수록 측정 정확도가 떨어지는 단점이 있습니다. 이를 극복하기 위해 여러 개의 기준 저항을 두고, 아두이노가 미지 저항값에 가장 적합한 기준 저항을 자동으로 선택하도록 코드를 작성했습니다.

아두이노 나노로 저항 정렬하기: 간편하고 시간 절약되는 방법

I2C 디스플레이를 사용하는 경우 아두이노 나노의 A4(SDA), A5(SCL) 핀에 연결하면 됩니다.

코드 핵심 로직

루프에 진입하면 아두이노는 A0 핀의 전압을 읽습니다. 기준 저항을 1MΩ부터 100Ω까지 순차적으로 전환하며 ADC 값이 350~800 범위(약 2.5V 근처)에 들어오는지 확인합니다. 적절한 기준 저항을 찾으면 전압 분배기 공식으로 미지 저항값(Ru)을 계산하고, 표준 저항값(E24 시리즈 등)에 가깝게 반올림해 디스플레이에 출력합니다.

// 주요 변수
int R1 = 100, R2 = 1000, R3 = 10000;
long R4 = 100000, R5 = 1000000;
int D2=2, D3=3, D4=4, D5=5, D6=6;
float raw=0, Vout=0, Ru=0;
int Analogohm = A0;

void loop() {
  // 1MΩ 기준 저항으로 측정 시작
  pinMode(D2, OUTPUT); digitalWrite(D2, HIGH);
  raw = analogRead(Analogohm);
  Rn = R5;
  // ADC 값이 범위 밖이면 다음 기준 저항으로 전환
  if (raw < 350 || raw > 800) { ... }
  
  // 전압 계산 및 미지 저항값 산출
  Vout = 5.0 * (raw / 1024.0);
  Ru = (Rn * Vout) / (5.0 - Vout);
  
  // 표준값으로 반올림 (예: 4.7kΩ → 4.7kΩ)
  if (Ru < 100) Ru = 10 * round(Ru/10);
  else if (Ru < 1000) Ru = 100 * round(Ru/100);
  // ... 이하 생략
  
  Resistance(Ru); // OLED에 표시
  delay(1000);
}

주의사항: 각 if문에서 사용하지 않는 핀을 INPUT 모드로 바꿔야 합니다. OUTPUT 상태로 두면 저임피던스 경로가 생겨 A0 측정에 영향을 줍니다.

브레드보드 테스트 및 3D 프린트 케이스 제작

아두이노 나노로 저항 정렬하기: 간편하고 시간 절약되는 방법

브레드보드에서 정상 동작을 확인한 후, 3D 프린터로 출력한 케이스에 납땜하여 조립하면 휴대용 저항 정렬기가 완성됩니다.

아두이노 나노로 저항 정렬하기: 간편하고 시간 절약되는 방법

이제 뒤섞인 저항을 구멍에 꽂기만 하면 값이 화면에 표시됩니다. 작업대가 깔끔해지는 마법 같은 도구입니다!

전체 코드

Adafruit_SSD1306 라이브러리가 필요합니다. 라이브러리 매니저에서 설치 후 아래 코드를 업로드하세요.

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// 비트맵 데이터 생략 ...

int R1 = 100, R2 = 1000, R3 = 10000;
long R4 = 100000, R5 = 1000000;
long Rn;
int D2=2, D3=3, D4=4, D5=5, D6=6;
float raw=0, Vout=0, Ru=0;
int Analogohm = A0;

void setup() {
  Serial.begin(9600);
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    for(;;); // 초기화 실패 시 멈춤
  }
  display.clearDisplay();
  display.drawBitmap(0,0, myLOGO, 128, 64, WHITE);
  display.display();
  delay(2000);
}

void loop() {
  // 자동 레인지 전환 로직 (위 설명 참조)
  // ...
  
  Vout = 5*(raw/1024.0);
  Ru = (Rn*Vout)/(5-Vout);
  
  // 반올림 로직 (수정됨: 5kΩ 부근 오류 수정)
  if (Ru < 10) Ru = 10 * round(Ru/10);
  else if (Ru < 100) Ru = 10 * round(Ru/10);
  else if (Ru < 1000) Ru = 100 * round(Ru/100);
  else if (Ru < 10000) Ru = 1000 * round(Ru/1000);
  else if (Ru < 100000) Ru = 10000 * round(Ru/10000);
  else if (Ru < 1000000) Ru = 100000 * round(Ru/100000);
  else Ru = 1000000 * round(Ru/1000000);
  
  Resistance(Ru);
  delay(1000);
}

void Resistance(long Ru) {
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println(F("Resistor Value:"));
  display.setCursor(20,25);
  display.setTextSize(2);
  display.print(Ru);
  display.print(F(" Ohm"));
  display.drawBitmap(0,0, myBitmap, 128, 64, WHITE);
  display.display();
  delay(2000);
}

회로도

아두이노 나노로 저항 정렬하기: 간편하고 시간 절약되는 방법

3D 프린트 파일

제조공정

  1. 스마트 식물 갈증 알림기 – DIY 토양 수분 센서로 최적의 수분 관리
  2. 이탈리안 워드 클럭(Word Clock) 제작: 아두이노 나노 + 네오픽셀 + LCD + RTC
  3. 아두이노 MKR Fox 1200으로 신뢰성 높은 시그폭스 kWh 미터 만들기
  4. 블루투스 온도 모니터: 아두이노 나노와 NTC 서미스터로 구현
  5. 터치프리 제스처 잠금장치: APDS-9960과 아두이노로 보안 액세스 구현
  6. 아두이노 나노 컴패니언 키트 – DIY 전자 작업을 위한 필수 부품 및 도구
  7. 아두이노 마이크로/레오나르도용 USB MIDI 어댑터 키트 – 전체 부품 리스트
  8. 아두이노용 절연 아날로그 입력 회로 만들기
  9. 아두이노 우노로 정밀 반응 속도 테스터 만들기
  10. 제로 옴 저항: 주요 장점과 실제 활용 사례