Skip to content

Commit

Permalink
samples: Added analog_input sample
Browse files Browse the repository at this point in the history
Add a sample to demonstrate how to use analogRead API

Signed-off-by: TOKITA Hiroshi <[email protected]>
  • Loading branch information
soburi committed Sep 25, 2022
1 parent e6f489f commit f21e912
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 0 deletions.
11 changes: 11 additions & 0 deletions samples/analog_input/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.20.0)

set(DTC_OVERLAY_FILE $ENV{ZEPHYR_BASE}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay)

find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(analog_input)

target_sources(app PRIVATE src/main.cpp)
zephyr_compile_options(-Wno-unused-variable -Wno-comment)
24 changes: 24 additions & 0 deletions samples/analog_input/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
.. _analog_input:

Analog Input
############

Overview
********

The analog_input sample blinks the LED with control of the period
by the voltage of the input pin.
Inputting high voltage to blink the LED slowly.
Blink the LED fast on input voltage is low.
When the input is 0V, LED light.

Building and Running
********************

Build and flash analog_input sample as follows,

```sh
$> west build -p -b arduino_nano_33_ble sample/analog_input/
$> west flash --bossac=/home/$USER/.arduino15/packages/arduino/tools/bossac/1.9.1-arduino2/bossac
```
2 changes: 2 additions & 0 deletions samples/analog_input/prj.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
CONFIG_ADC=y
CONFIG_ARDUINO_API=y
29 changes: 29 additions & 0 deletions samples/analog_input/src/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright (c) 2022 TOKITA Hiroshi <[email protected]>
*
* SPDX-License-Identifier: Apache-2.0
*/

#include <Arduino.h>

const int analog_input = A0; // select the input pin for the potentiometer
const int ledPin = LED_BUILTIN; // select the pin for the LED
const float wait_factor = 1.f;

void setup() {
pinMode(ledPin, OUTPUT);
}

void loop() {
int value = 0;

value = analogRead(analog_input);

/* Blinks slowly when the input voltage is high */

digitalWrite(ledPin, HIGH);
delay(value * wait_factor);

digitalWrite(ledPin, LOW);
delay(value * wait_factor);
}

0 comments on commit f21e912

Please sign in to comment.