반응형

개발자/Arduino 176

아두이노 짧은 시간 Delay 사용 하지 않는 코드

Dela(1000분의 1초 숫자) 함수를 사용하는 것은 우리의 유능한 아두이노의 마이크로 프로세서를 익사시키는 일과 같다. 제어 코드를 실행하는 과정에 Delay( ) 함수를 만나면 아무일도 못하고(예외가 있는데 외부 입역 인터럽트나 타이머 인터럽트는 실행된다.) 기다린다. 한없이 기다린다. 아무일도 하지 않고 그저 기다린다. 이것은 어마어마한 낭비다. 그래서 여기서는 Fade in, out 즉 점점 LED 밝기가 점점 환해지거나 흐려지는 동작을 delay 함수를 쓰지 않고 사용하는 방법을 살펴 본다. 이와 같은 방법은 자주 사용하므로 정확히 알아두는게 개발자로 사는데에 도움이 된다. 믿어라. 아두이노 예제 코드에서 페이딩 예제를 한 번 살펴보면 int led = 9; // the PWM pin the ..

개발자/Arduino 2023.10.18

nano 33 iot 1초 타이머 작동 - delay 사용 금지

타이머를 작동하여 1초 마다 작동하는 코드 빠진 건 없겠지 간단하게 설명하면 1. 맨 위 변수 sampling rate를 준다. 단위는 milisecond, 이 시간으로 인터럽트를 발생한다. 여기서는 1000ms, 즉 1초마다 인터럽트가 발생하도록 설정하였다. 2. 타이머 인터럽트에서 사용할 변수를 선언한다. 여기서는 1초마다 증가하는 타임 틱 변수와 300초(5분)를 확인할 수 있는 변수를 주었다. 이 변수는 타이머 인터럽트 함수에서 함께 증가시켜준다. 3. delay 쓰지 않고 메인에서 시간 체크만 하면서 정해진 시간마다 일정한 동작을 실행한다. 4. TC5_Handler 이하 타이머 관련 함수들이다. 설명은 시간상 생략한다. 그대로 가져다 쓰면 잘 동작한다. #include //define time..

개발자/Arduino 2023.10.13

가변저항 두 개로 시간을 보여주는 코드

가변 저항 두 개를 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..

개발자/Arduino 2023.10.13

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)..

개발자/Arduino 2023.10.05

0부터 1023 까지 숫자를 12시간중 어떤 구간인지 알아내는 코드

생각하기가 싫어 ChatGPT 에게 물었더니 낼름 코드를 짜준다. 몇 번 질문을 수정했다. 질문이 잘못됐는지 엉뚱한 코드가 몇 번 나왔다. 프롬프트를 몇 번 수정해서 제대로 질문했더니 아름다운 코드가 나왔다. 마지막 구간을 헷갈리는 오류가 나고, +1이나 -1 코드를 사용하는 부분을 눈여겨 보면 누적되어 나중에 구간이 맞지 않는 경우가 생긴다. 참고하시길. 코드는 시간을 포텐셜미터 - 가변저항을 통해서 받은 아날로그 데이터(0~1023) 값을 시간과 분으로 표시하는 방법을 구현하는 중이다. 이렇게 하면 일단 시간 값은 얻을 수 있다. 일단 지피티가 짠 코드를 보자. 꽤 잘 돌아간다. 그러니까 0~1023까지의 숫자를 12시간이나 24시간으로 나눠서 배열에 시작하는 숫자와 마지막 숫자를 저장한다. 아날로그..

개발자/Arduino 2023.10.05

PIR 센서를 이용한 보안 경보 시스템

아두이노를 이용해 PIR 센서 기반의 보안 경보 시스템을 설계하고 구현해 보겠습니다. 이 회로는 아두이노를 중앙 마이크로컨트롤러로 사용하고 PIR 센서 자체를 사용하여 설계했습니다. 경찰 사이렌 효과를 내기 위해 사이렌 발생기 IC인 UM3561 IC를 사용하여 부저를 통해 경보음을 발생시켰습니다. 일반적으로 주택, 상점, 사무실 등에서 특수하게 사용되는 보안 시스템은 정확성과 신뢰성을 위해 기본적으로 적외선 또는 레이저 시스템을 사용합니다. 하지만 이러한 방식은 많은 금전적 투자와 인프라 지원이 필요합니다. 이 작은 프로젝트에서는 비용 효율적인 보안 경보 시스템을 위한 간단한 솔루션을 구현하여 PIR 기반 보안 경보 시스템에 대해 자세히 설명합니다. 이 방법은 전력 소비를 최소화하고 저렴한 비용으로 구..

개발자/Arduino 2023.08.28

아두이노 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는 초당 샘플링이 더 높은 것으로 구분이 됩..

개발자/Arduino 2023.05.02

전류 전압 컨버터 4~20mA 전류 측정

전류 - 전압 컨버터 (Gravity: Analog Current to Voltage Converter(for 4~20mA Application)) 이 전류-전압 모듈은 0-25mA 전류 신호를 0-3V 전압 신호로 선형적으로 변환합니다. 산업용 센서 또는 디바이스의 전류 신호 출력은 일반적으로 4~20mA입니다. 이 전류-전압 모듈을 사용하면 메인 제어 보드에서 산업용 센서 또는 장치에서 출력되는 전류 신호를 쉽게 읽을 수 있습니다. * 정밀도를 높이려면 12bit 이상의 ADC를 사용하는 것을 권장합니다. 일반적으로 4mA 미만의 전류 신호는 고장 진단에 사용할 수 있고, 20mA 이상의 전류 신호는 오버런 감지에 사용할 수 있습니다. 따라서 이 모듈은 고장 감지, 오버런 감지 애플리케이션과 호환되는..

개발자/Arduino 2023.05.02

Arduino 기반 LM35 온도 센서 데이터 수집 시스템(.csv 파일)

이 포스팅에서는 Python 및 Arduino UNO 보드를 사용하여 저비용 다중 채널 데이터 로깅 시스템을 구축하여 디스크의 CSV(쉼표로 구분된 값) 파일에 데이터를 기록하고 저장합니다. 본 포스팅 참고자료는 맨 아래 참고를 확인하세요. 시스템은 동시에 4개의 독립적인 소스에서 온도 데이터를 모니터링 하고 데이터를 파일에 기록할 수 있습니다. 이 시스템은 Arduino와 LM324 opamp를 기반으로 하는 아날로그 프런트 엔드를 사용하여 4개의 LM35 온도 센서에서 온도를 측정합니다 . 아날로그 값은 Arduino UNO(ATmega328P)의 10비트 ADC에 의해 디지털화되어 Virtual Serial Port 통신을 사용하여 PC 또는 MAC으로 전송합니다. 전송한 데이터는 PC에서 실행되는..

개발자/Arduino 2023.04.25

아두이노 라이브러리 설치 안될 때 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. 일부러 띄어 쓴 거..

개발자/Arduino 2023.04.13

mkdir c:\program files\arduino ide\libraries: access is denied. 해결

아두이노 라이브러리 설치할 때 mkdir c:\program files\arduino ide\libraries: 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..

개발자/Arduino 2023.04.11

ADXL335 Accelerometer Module Arduino

본 포스팅에서 가속도계란 무엇이며 ADXL335 가속도계 센서를 Arduino UNO와 인터페이스 하는 방법을 살펴봅니다. 스마트폰에서 기기를 회전하면 화면의 방향이 바뀌는 것을 본 적이 있을 텐데요. 이는 가속도계일 뿐입니다. 따라서 가속도계 센서의 작동 방식, 유형 및 응용 프로그램도 다룰 것입니다. 가속도계의 소개 부분으로 넘어가 보겠습니다. 요즘 카메라와 스마트폰은 축 기반 모션 센서로 구성된 가속기를 사용합니다. 이 가속기는 지진도 감지할 수 있습니다. 가속도 센서는 가속력을 측정하는 전자 기계 장치입니다. 이 힘은 정적일 수도 있고 동적일 수도 있습니다. 우리 모두 알다시피 가속도는 주어진 시간에 따른 속도의 변화를 측정하는 것입니다. 노트북 하드 드라이브도 가속도계를 사용합니다. 노트북이 넘..

개발자/Arduino 2023.04.11

아두이노 압력센서 FSR 406 Solder Tabs

압력센서 FSR 406 Solder Tabs Interlink Electronics FSR™ 400 시리즈는 단일 영역의 힘을 측정하는 Force Sensing Resistor™ 제품군의 하나입니다. 힘 감지 저항기(FSR)는 센서 표면에 가해지는 힘이 증가함에 따라 저항이 감소하는 견고한 폴리머 후막(PTF, 압력 센서 혹은 터치 센서(FSR, Force-sensing resistor) 부품입니다. 이러한 힘을 감지하는 센소는 자동차, 전자, 의료 시스템, 산업 및 로봇 공학 응용 프로그램과 같은 전자 장치의 인간 접촉 제어에 사용하도록 최적화되어 있습니다. 주요 특징들 동적 감지 범위는 ~0.2N ~ 20N입니다.(1N: 뉴턴은 1kg의 질량을 갖는 물체를 매초 제곱분의 1 미터(=1m/s2)만큼 가..

개발자/Arduino 2022.12.12

아두이노 금속감지 센서 LJ12A3

아두이노 금속감지 센서 인덕티브 근접 센서 -LJ12A3-4-Z/BX (Inductive Proximity Sensor -LJ12A3-4-Z/BX) 도체(금속) 감지 특징 본 제품은 인덕티브 근접 센서 모듈입니다. 도체의 유무를 검출할 수 있는 센서로 검출거리는 약 4mm입니다. 금속의 종류에 따라 검출거리에 오차가 있을 수 있습니다. 제품 이미지 LJ2A3-4ZBX는 유도성 센서로서 철 또는 금속 물질의 위치 또는 근접성을 나타내는 지표로 사용되며, 상대를 감지하기 위한 스모 로봇의 설계뿐만 아니라 금속 또는 철 물체를 세거나 감지해야 하는 과정에서 우수한 지지물이 될 수 있습니다. LJ2A3-4ZBX는 공정 제어를 위해 업계에서 널리 사용합니다. LJ2A3-4ZBX가 금속 물체에 가까울 때 출력은 감..

개발자/Arduino 2022.12.08

아두이노 RC522 RFID Module 사용하기

RFID(Radio Frequancy Identification)는 무선 주파수를 이용하여 RFID 태그와 RFID 리더 간 데이터를 교환하는 장치입니다. 교통카드, 학생 신분증 겸용 카드, 연구실 및 회사 출입문 카드, 구내식당 카드, 마트 등의 상품 진열 및 관리, 마라톤 대회 선수 배번호 등 다방면에서 이용되고 있습니다. 대부분의 경우 RFID 기반 Arduino 프로젝트가 사용되며 이는 탁월한 선택입니다. 간단한 이유는 다른 유사한 유형의 제품보다 저렴하고 저전력으로 작동할 수 있기 때문입니다. 인터페이스도 간편하여 애호가들 사이에서 매년 인기가 높아지고 있습니다. 센서의 작동 RFID 기술은 크게 두 부분으로 나눌 수 있으며 두 개의 태그입니다. 하나의 태그는 식별 목적으로 개체에 부착되고 다른..

개발자/Arduino 2022.11.11
반응형