본문 바로가기

개발자/Arduino

가변저항 두 개로 시간을 보여주는 코드 가변 저항 두 개를 A0(시간 설정), A1(분을 설정)연결하여 시간과 분을 설정하면 SSD1306 OLED에 표시한다. 코드가 좀 지저분 하지만 사용자 값을 설정할 때 얼마든지 활용 가능한 아이디어로 올려둔다. 회로도 참고 /* server address: http://api.sleep-doc.com/sleepq2/578f38a45732416d3ceb7899/2023/09/05 https://fishpoint.tistory.com/5156 */ #include #include #include "arduino_secrets.h" #include #include #include #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN..
nano 33 IoT 보드 ADC 12bit 설정 ADC 비트 수, 분해능, 레졸루션을 변경하는 방법 Arduino Nano 33 BLE에는 아날로그 읽기 해상도를 변경하여 analogRead() 함수가 반환하는 값의 비트 수를 늘릴 수 있는 기능이 있습니다. 기본 해상도 값은 10비트(0~1023 사이의 값 반환)이며 최대 12비트 ADC(0~4095 사이의 값 반환)까지 지원할 수 있습니다. 이를 위해 analogRead()가 반환하는 값의 크기(비트)를 설정하는 analogReadResolution()이라는 또 다른 함수가 있습니다. 바로 이 함수에서 ADC 분해능(해상도, 비트 수)를 변경할 수 있습니다. analogReadResolution() analogReadResolution()은 제로, 듀, MKR 제품군, 나노 33(BLE 및 IoT)..
0부터 1023 까지 숫자를 12시간중 어떤 구간인지 알아내는 코드 생각하기가 싫어 ChatGPT 에게 물었더니 낼름 코드를 짜준다. 몇 번 질문을 수정했다. 질문이 잘못됐는지 엉뚱한 코드가 몇 번 나왔다. 프롬프트를 몇 번 수정해서 제대로 질문했더니 아름다운 코드가 나왔다. 마지막 구간을 헷갈리는 오류가 나고, +1이나 -1 코드를 사용하는 부분을 눈여겨 보면 누적되어 나중에 구간이 맞지 않는 경우가 생긴다. 참고하시길. 코드는 시간을 포텐셜미터 - 가변저항을 통해서 받은 아날로그 데이터(0~1023) 값을 시간과 분으로 표시하는 방법을 구현하는 중이다. 이렇게 하면 일단 시간 값은 얻을 수 있다. 일단 지피티가 짠 코드를 보자. 꽤 잘 돌아간다. 그러니까 0~1023까지의 숫자를 12시간이나 24시간으로 나눠서 배열에 시작하는 숫자와 마지막 숫자를 저장한다. 아날로그..
PIR 센서를 이용한 보안 경보 시스템 아두이노를 이용해 PIR 센서 기반의 보안 경보 시스템을 설계하고 구현해 보겠습니다. 이 회로는 아두이노를 중앙 마이크로컨트롤러로 사용하고 PIR 센서 자체를 사용하여 설계했습니다. 경찰 사이렌 효과를 내기 위해 사이렌 발생기 IC인 UM3561 IC를 사용하여 부저를 통해 경보음을 발생시켰습니다. 일반적으로 주택, 상점, 사무실 등에서 특수하게 사용되는 보안 시스템은 정확성과 신뢰성을 위해 기본적으로 적외선 또는 레이저 시스템을 사용합니다. 하지만 이러한 방식은 많은 금전적 투자와 인프라 지원이 필요합니다. 이 작은 프로젝트에서는 비용 효율적인 보안 경보 시스템을 위한 간단한 솔루션을 구현하여 PIR 기반 보안 경보 시스템에 대해 자세히 설명합니다. 이 방법은 전력 소비를 최소화하고 저렴한 비용으로 구..
아두이노 ADC 모듈 ADS1115 ADS1015 i2c 통신을 이용하여 조도센서, 가변저항 등의 아날로그 신호를 입력받을 수 있는 외장 adc 모듈입니다. i2c 통신이 가능한 MCU에 연결하면 4채널의 아날로그 입력 핀을 사용할 수 있습니다. 이 제품의 특징은 ADDR 핀에 VCC, GND, SCL, SDA 핀 중 어떤 핀을 연결하는지에 따라서 i2c 주소를 변경하여 사용할 수 있기 때문에 하나의 MCU에 최대 4개의 모듈을 장착할 수 있는 점과, 게인(Gain)을 조정하여 큰 신호부터 작은 신호까지(최대 범위 : 6.144V, 최소 범위 : 0.256V)를 입력받을 수 있는 점입니다. ads1115와 ads1015는 거의 대부분이 동일하게 제작되어 있지만, ads1115는 해상도가 더 높고, ads1015는 초당 샘플링이 더 높은 것으로 구분이 됩..
전류 전압 컨버터 4~20mA 전류 측정 전류 - 전압 컨버터 (Gravity: Analog Current to Voltage Converter(for 4~20mA Application)) 이 전류-전압 모듈은 0-25mA 전류 신호를 0-3V 전압 신호로 선형적으로 변환합니다. 산업용 센서 또는 디바이스의 전류 신호 출력은 일반적으로 4~20mA입니다. 이 전류-전압 모듈을 사용하면 메인 제어 보드에서 산업용 센서 또는 장치에서 출력되는 전류 신호를 쉽게 읽을 수 있습니다. * 정밀도를 높이려면 12bit 이상의 ADC를 사용하는 것을 권장합니다. 일반적으로 4mA 미만의 전류 신호는 고장 진단에 사용할 수 있고, 20mA 이상의 전류 신호는 오버런 감지에 사용할 수 있습니다. 따라서 이 모듈은 고장 감지, 오버런 감지 애플리케이션과 호환되는..
Arduino 기반 LM35 온도 센서 데이터 수집 시스템(.csv 파일) 이 포스팅에서는 Python 및 Arduino UNO 보드를 사용하여 저비용 다중 채널 데이터 로깅 시스템을 구축하여 디스크의 CSV(쉼표로 구분된 값) 파일에 데이터를 기록하고 저장합니다. 본 포스팅 참고자료는 맨 아래 참고를 확인하세요. 시스템은 동시에 4개의 독립적인 소스에서 온도 데이터를 모니터링 하고 데이터를 파일에 기록할 수 있습니다. 이 시스템은 Arduino와 LM324 opamp를 기반으로 하는 아날로그 프런트 엔드를 사용하여 4개의 LM35 온도 센서에서 온도를 측정합니다 . 아날로그 값은 Arduino UNO(ATmega328P)의 10비트 ADC에 의해 디지털화되어 Virtual Serial Port 통신을 사용하여 PC 또는 MAC으로 전송합니다. 전송한 데이터는 PC에서 실행되는..
아두이노 라이브러리 설치 안될 때 access is denied 오류 해결 간혹 아두이노 개발환경을 실행할 때 관리자 권한으로 실행하지 않는 경우가 있다. 그래서 라이브러리 매니저에서 라이브러리를 찾아 설치할 때 메시지로 이런 게 뜬다. Error 13: Library install failed at mkdir - Arduino IDE 2.0 혹은 다른 에러 메시지 - 아두이노 라이브러리 설치할 때 mkdir c:\program files\arduino ide\libraries: access is denied. 이런 메시지가 뜬다. 아두이노 라이브러리가 어디에 설치될지는 환경 설정에 따라 다르겠지만 어쨌든 보통 아두이노 IDE(통합 개발환경)이 설치된 폴더의 아래에 설치된다. 예) C:\Program Files \ Arduino IDE \ libraries. 일부러 띄어 쓴 거..