개발자/Arduino 썸네일형 리스트형 아두이노의 아날로그 핀을 디지털 핀으로 사용? 물론 가능합니다. 아래 아두이노 우노 핀 맵을 보면 A0~A5 까지 아날로그 신호 입력 핀으로 사용하는 핀을 D14~D19 까지 디지털 핀으로 사용하실 수 있습니다. 사용 방법은 간단합니다. 할당 핀에 번호를 Ax 혹은 Dx로 붙여 할당하면 됩니다. 아래의 예는 아날로그 핀 A0를 출력으로 설정하고 HIGH (5V) 출력을 주는 코드입니다. pinMode(A0, OUTPUT);digitalWrite(A0, HIGH); 그냥 디지털 핀을 사용하듯이 하되, 핀 번호만 아날로그 핀 이름을 써주는 것입니다. 또는, 아래와 같이도 가능합니다. 아래 코드는 아두이노 우노 기준으로, 위의 코드와 동일한 기능을 합니다. pinMode(14, OUTPUT);digitalWrite(14, HIGH); 아두이노 우.. Arduino와 DS18B20 1-Wire 디지털 온도 센서 인터페이스, 온도표시 Arduino와 DS18B20 1-Wire 디지털 온도 센서 인터페이스 Arduino 프로젝트에 온도 감지를 추가하는 가장 쉽고 저렴한 방법 중 하나는 DS18B20 1-Wire 온도 센서를 사용하는 것입니다. 이 센서는 매우 정확하며 작동하는 데 외부 구성 요소가 필요하지 않습니다. 따라서 몇 개의 연결과 일부 Arduino 코드로 온도를 즉시 감지 할 수 있습니다! DS18B20 1-Wire 온도 센서 DS18B20은 Dallas Semiconductor Corp에서 제조 한 1-Wire 인터페이스 온도 센서 입니다. 고유한 1-Wire® 인터페이스는 마이크로 컨트롤러와 양방향 통신을위한 하나의 디지털 핀을 필요로한다. 센서는 일반적으로 두 가지 폼 팩터로 제공 됩니다. TO-92 패키지로 제공되.. Arduino와 여러 개 DS18B20 디지털 온도 센서 인터페이스 DS18B20의 특징 중 하나는 동일한 1-Wire 버스에 여러 대의 DS18B20이 공존할 수 있다는 것입니다. 각 DS18B20은 고유한 64비트 직렬 코드로 사전 프로그래밍되어 있기 때문에 서로 구별할 수 있습니다. 다음 튜토리얼에서는 동일한 버스에 연결된 여러 DS18B20에서 온도를 읽는 방법을 보여드립니다. 이 기능은 넓은 지역에 걸쳐 여러 대의 DS18B20을 제어해야 할 때 매우 유용할 수 있습니다. 이 튜토리얼을 진행하기 전에 DS18B20 단선 온도 센서의 기본 사항을 숙지해야 합니다. 이 링크를 따라 튜토리얼을 먼저 읽어보시기 바랍니다. 더 이상 고민할 필요 없이 DS18B20을 아두이노에 연결해 보겠습니다. 여러 개의 DS18B20 센서를 Arduino에 배선하기 연결은 매우.. 아두이노 짧은 시간 Delay 사용 하지 않는 코드 Dela(1000분의 1초 숫자) 함수를 사용하는 것은 우리의 유능한 아두이노의 마이크로 프로세서를 익사시키는 일과 같다. 제어 코드를 실행하는 과정에 Delay( ) 함수를 만나면 아무일도 못하고(예외가 있는데 외부 입역 인터럽트나 타이머 인터럽트는 실행된다.) 기다린다. 한없이 기다린다. 아무일도 하지 않고 그저 기다린다. 이것은 어마어마한 낭비다. 그래서 여기서는 Fade in, out 즉 점점 LED 밝기가 점점 환해지거나 흐려지는 동작을 delay 함수를 쓰지 않고 사용하는 방법을 살펴 본다. 이와 같은 방법은 자주 사용하므로 정확히 알아두는게 개발자로 사는데에 도움이 된다. 믿어라. 아두이노 예제 코드에서 페이딩 예제를 한 번 살펴보면 int led = 9; // the PWM pin the .. nano 33 iot 1초 타이머 작동 - delay 사용 금지 타이머를 작동하여 1초 마다 작동하는 코드 빠진 건 없겠지 간단하게 설명하면 1. 맨 위 변수 sampling rate를 준다. 단위는 milisecond, 이 시간으로 인터럽트를 발생한다. 여기서는 1000ms, 즉 1초마다 인터럽트가 발생하도록 설정하였다. 2. 타이머 인터럽트에서 사용할 변수를 선언한다. 여기서는 1초마다 증가하는 타임 틱 변수와 300초(5분)를 확인할 수 있는 변수를 주었다. 이 변수는 타이머 인터럽트 함수에서 함께 증가시켜준다. 3. delay 쓰지 않고 메인에서 시간 체크만 하면서 정해진 시간마다 일정한 동작을 실행한다. 4. TC5_Handler 이하 타이머 관련 함수들이다. 설명은 시간상 생략한다. 그대로 가져다 쓰면 잘 동작한다. #include //define time.. 가변저항 두 개로 시간을 보여주는 코드 가변 저항 두 개를 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시간으로 나눠서 배열에 시작하는 숫자와 마지막 숫자를 저장한다. 아날로그.. 이전 1 2 3 4 ··· 23 다음