Sha256: 3698eec8ec4fdf7420d28395c130218ba7cb76c35aef9f29a10eb55486bbfce0

Contents?: true

Size: 956 Bytes

Versions: 2

Compression:

Stored size: 956 Bytes

Contents

#
# Example looping the Arduino Zero's DAC back into one of its ADC pins.
#
require 'bundler/setup'
require 'denko'

#
# For the Arduino Zero: 'DAC0' = 'A0' = GPIO14.
# For the ESP32 V1:     'DAC0' = GPIO25, 'DAC1' = GPIO26, `ADC1_4` = 32
#
# Connect DAC_PIN TO ADC_PIN with a jumper to test.
#
DAC_PIN = 'DAC0'
ADC_PIN = 'A5'

board = Denko::Board.new(Denko::Connection::Serial.new)
dac = Denko::AnalogIO::Output.new(pin: DAC_PIN, board: board)
adc = Denko::AnalogIO::Input.new(pin: ADC_PIN, board: board)

#
# Read values should be approximately 4x the written values, since Board#new tries to
# set output resolution at 8-bits and input to 10-bits. Not configurable on all chips.
# Scale may be off but, readings should still be proportional.
#
[0, 32, 64, 128, 192, 255].each do |output_value|
  dac.write output_value
  sleep 1
  loopback_value = adc.read
  puts "ADC reads: #{loopback_value} when DAC writes: #{output_value}"
end

board.finish_write

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
denko-0.13.1 examples/analog_io/dac_loopback.rb
denko-0.13.0 examples/analog_io/dac_loopback.rb