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

Arduino용 절연 아날로그 입력

구성품 및 소모품

저항 100k 옴
±1% 금속 필름
× 2
Arduino UNO
× 1
텍사스 인스트루먼트 LM331
× 1
LM7808
× 1
저항 3.3k 옴
±1% 금속 필름
× 1
저항 270옴
±1% 금속 필름
× 1
저항 47옴
× 1
저항 12k 옴
±1% 금속 필름
× 1
저항 6.8k 옴
±1% 금속 필름
× 1
저항 10k 옴
× 1
저항 330옴
× 1
저항 220옴
× 1
다중 회전 정밀 전위차계 5k ohm
× 1
커패시터 100nF
마일라 유형
× 1
커패시터 10nF
마일라 유형
× 1
커패시터 1 MF
마일라 유형
× 1
커패시터 100nF
× 1
커패시터 4.7μF
× 1
커패시터 220μF
× 1
다이오드 1N4001
× 4
4N25 광 아이솔레이터
× 1

필요한 도구 및 기계

납땜 인두(일반)

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

필드 센서의 신호는 전력 서지, 낙뢰 또는 기타 EMI(전자기 간섭) 소스에서 생성된 노이즈와 접지 전위차의 영향을 받을 수 있습니다. 이러한 문제를 대부분 피하는 한 가지 방법은 현장에서 완전히 격리하는 것입니다.

입력 센서를 절연하려면 필드 장치에 전원을 공급하기 위한 별도의 전원 공급 장치와 절연 자체를 실현하는 회로가 필요합니다.

자세한 내용은 내 블로그에 게시된 게시물에서 확인할 수 있습니다. http://ardupiclab.blogspot.it/.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • Arduino 인터페이스 및 프로그램
  • Arduino 인터페이스 및 프로그램Arduino
    Arduino는 두 가지 방법으로 주파수를 측정할 수 있습니다.
    • 펄스인() 함수를 사용한 주기 측정;
    • 특수 라이브러리를 사용하여 CPU 타이머/카운터로 주파수 측정.
    첫 번째 방법은 신호의 HIGH 시간과 LOW 시간을 마이크로초 분해능으로 측정하기 위해 두 배의 pulsein() 함수를 사용합니다. 두 측정의 합은 신호의 주기입니다. 5kHz 신호의 경우 주기는 200μs =HIGH 시간 + LOW 시간 =125+75μs입니다. 시간 분해능은 상대적으로 낮고 측정 정확도도 프로그램 명령의 시간에 영향을 받습니다.
    이 방법의 긍정적인 측면은 측정된 주기보다 약간 빠른 측정 속도입니다. 정확도가 낮을 ​​뿐만 아니라 전력망 노이즈(50 또는 60Hz)에 가장 민감하다는 단점이 있습니다.
    이러한 이유로 저는 주기에 대한 주파수 측정을 선호합니다. 측정 시간은 더 길지만 더 높은 정밀도와 정확한 샘플링 시간을 얻을 수 있습니다. 또한 계통의 측정주기의 배수로 선택하여 내노이즈성이 뛰어납니다.
    Martin Nawrath KHM LAB3의 FreqCounter 라이브러리를 사용합니다.
    http://interface.khm.de/wp-content/uploads/2009/01/FreqCounter_1_12.zip
    이 라이브러리는 T1/PD5/digitalPin5의 상승 에지에서 펄스를 계산하기 위해 Timer/Counter1을 사용하고 1ms 인터럽트가 있는 게이트 시간 생성을 위해 Timer/Counter2를 사용합니다.
    50 또는 60개의 전원 주기 주기에서 카운트를 조정하기 위해 1000ms와 동일한 게이트 시간을 선택했습니다. 이 경우 Arduino Uno보다 5배 높은 해상도를 얻을 수 있습니다.
    #include void setup() { Serial.begin(9600); // 직렬 포트에 연결 Serial.println("Optoisolated analog input");}long int frq;void loop() { FreqCounter::f_comp=0; // 보상을 0으로 설정 FreqCounter::start(1000); // 게이트 타임 1000ms로 카운팅 시작 while (FreqCounter::f_ready ==0) // 카운터가 준비될 때까지 대기 frq=FreqCounter::f_freq; // 결과 읽기 Serial.println(frq); // 결과 출력 delay(100);}

    회로도

    이 회로는 약 20mV ~ 5V의 입력 전압 또는 4 ~ 20mA의 전류(점퍼 W1이 삽입된 상태)를 받아들입니다. 병렬 R2 및 R3의 두 저항은 4mA ~ 20mA 전류 입력에 대해 1V ~ 5V를 갖기 위해 약 250옴의 값을 제공합니다.
    회로를 Arduino Uno에 연결하려면 3개의 전선과 저항만 있으면 됩니다. 광 커플러의 출력은 Arduino의 +5V에 연결된 풀업 2.2k 저항을 사용하여 디지털 입력 D5에 연결해야 합니다.
    10V의 입력 범위가 필요한 경우 15V 전원이 필요하므로 7808 레귤레이터를 7815로 변경해야 합니다. 트랜스포머 T1도 센서에 전원을 공급해야 하므로 적절한 전압과 전원이 있어야 합니다. 트리머 P1은 약 1kHz/V의 변환 계수를 얻기 위해 조정되어야 합니다.

    제조공정

    1. 갈증 경보 식물 알람
    2. Nokia 5110 LCD의 DIY Simple 20kHz Arduino 오실로스코프
    3. 스마트 블라인드
    4. 이탈리아어 단어 시계
    5. 4x3 키패드용 핀 3개
    6. Sigfox kWh 미터
    7. 블루투스 온도 모니터
    8. 제스처 제어 잠금
    9. 컴패니언 IC
    10. USB MIDI 어댑터