mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-09-19 16:46:11 -04:00
0.2.1 ADC08XS
This commit is contained in:
parent
3a7ca3fdd1
commit
fbd91dd0b0
@ -6,7 +6,7 @@ jobs:
|
|||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: arduino/arduino-lint-action@v1
|
- uses: arduino/arduino-lint-action@v1
|
||||||
with:
|
with:
|
||||||
library-manager: update
|
library-manager: update
|
||||||
|
@ -8,7 +8,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ruby/setup-ruby@v1
|
- uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: 2.6
|
ruby-version: 2.6
|
||||||
|
@ -10,7 +10,7 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: json-syntax-check
|
- name: json-syntax-check
|
||||||
uses: limitusus/json-syntax-check@v1
|
uses: limitusus/json-syntax-check@v1
|
||||||
with:
|
with:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
//
|
//
|
||||||
// FILE: ADC08XS.cpp
|
// FILE: ADC08XS.cpp
|
||||||
// AUTHOR: Rob Tillaart
|
// AUTHOR: Rob Tillaart
|
||||||
// VERSION: 0.2.0
|
// VERSION: 0.2.1
|
||||||
// DATE: 2024-01-13
|
// DATE: 2024-01-13
|
||||||
// PURPOSE: Arduino library for ADC082S, ADC084S, ADC102S, ADC104S, ADC122S, ADC124S,
|
// PURPOSE: Arduino library for ADC082S, ADC084S, ADC102S, ADC104S, ADC122S, ADC124S,
|
||||||
// 8, 10, 12 bits, 2 or 4 channel ADC (SPI).
|
// 8, 10, 12 bits, 2 or 4 channel ADC (SPI).
|
||||||
@ -45,6 +45,7 @@ void ADC08XS::begin(uint8_t select)
|
|||||||
{
|
{
|
||||||
_select = select;
|
_select = select;
|
||||||
pinMode(_select, OUTPUT);
|
pinMode(_select, OUTPUT);
|
||||||
|
// pulse
|
||||||
digitalWrite(_select, HIGH);
|
digitalWrite(_select, HIGH);
|
||||||
digitalWrite(_select, LOW);
|
digitalWrite(_select, LOW);
|
||||||
digitalWrite(_select, HIGH);
|
digitalWrite(_select, HIGH);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// FILE: ADC08XS.h
|
// FILE: ADC08XS.h
|
||||||
// AUTHOR: Rob Tillaart
|
// AUTHOR: Rob Tillaart
|
||||||
// VERSION: 0.2.0
|
// VERSION: 0.2.1
|
||||||
// DATE: 2024-01-13
|
// DATE: 2024-01-13
|
||||||
// PURPOSE: Arduino library for ADC082S, ADC084S, ADC102S, ADC104S, ADC122S, ADC124S,
|
// PURPOSE: Arduino library for ADC082S, ADC084S, ADC102S, ADC104S, ADC122S, ADC124S,
|
||||||
// 8, 10, 12 bits, 2 or 4 channel ADC (SPI).
|
// 8, 10, 12 bits, 2 or 4 channel ADC (SPI).
|
||||||
@ -14,7 +14,7 @@
|
|||||||
#include "SPI.h"
|
#include "SPI.h"
|
||||||
|
|
||||||
|
|
||||||
#define ADC08XS_LIB_VERSION (F("0.2.0"))
|
#define ADC08XS_LIB_VERSION (F("0.2.1"))
|
||||||
|
|
||||||
|
|
||||||
#ifndef __SPI_CLASS__
|
#ifndef __SPI_CLASS__
|
||||||
|
@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
|||||||
and this project adheres to [Semantic Versioning](http://semver.org/).
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
|
||||||
|
## [0.2.1] - 2024-03-03
|
||||||
|
- Fix #6, add example for SPI1
|
||||||
|
- update Github/actions to v4 (build-CI)
|
||||||
|
- minor edits
|
||||||
|
|
||||||
## [0.2.0] - 2024-01-19
|
## [0.2.0] - 2024-01-19
|
||||||
- Fix #4, improve SPI dependency
|
- Fix #4, improve SPI dependency
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ All six classes have identical interfaces as the ADC082S.
|
|||||||
- **ADC082S_MC(uint8_t dataIn, uint8_t dataOut, uint8_t clock)**
|
- **ADC082S_MC(uint8_t dataIn, uint8_t dataOut, uint8_t clock)**
|
||||||
- **void begin(uint8_t select)** set SELECT or CS pin.
|
- **void begin(uint8_t select)** set SELECT or CS pin.
|
||||||
- **int16_t maxValue()** returns maxReading of ADC, => 255, 1023, 4095
|
- **int16_t maxValue()** returns maxReading of ADC, => 255, 1023, 4095
|
||||||
depending on number of bits / class.
|
depending on number of bits of the actual ADC.
|
||||||
- **uint8_t maxChannel()** returns 2 or 4 depending on the class.
|
- **uint8_t maxChannel()** returns 2 or 4 depending on the class.
|
||||||
|
|
||||||
|
|
||||||
@ -132,7 +132,8 @@ depending on number of bits / class.
|
|||||||
- **uint16_t read(uint8_t channel)** reads the value of the device.
|
- **uint16_t read(uint8_t channel)** reads the value of the device.
|
||||||
The parameter channel must be 0,1,2,3, depending on device.
|
The parameter channel must be 0,1,2,3, depending on device.
|
||||||
Invalid channels will always return zero 0.
|
Invalid channels will always return zero 0.
|
||||||
- **int deltaRead(chanA, chanB)** read channel A and B and return the difference.
|
- **int deltaRead(uint8_t chanA, uint8_t chanB)** read channel A and B
|
||||||
|
and return the difference.
|
||||||
Note that the value can be negative if read(B) > read(A) or zero.
|
Note that the value can be negative if read(B) > read(A) or zero.
|
||||||
if chanA == chanB there will be two reads of the same channel just
|
if chanA == chanB there will be two reads of the same channel just
|
||||||
a few microseconds apart, most often returning 0.
|
a few microseconds apart, most often returning 0.
|
||||||
@ -146,7 +147,7 @@ please read datasheet of the ADC first to get optimal speed.
|
|||||||
|
|
||||||
- **void lowPower()** put device in low power mode.
|
- **void lowPower()** put device in low power mode.
|
||||||
- **void wakeUp()** put device in normal power mode.
|
- **void wakeUp()** put device in normal power mode.
|
||||||
- **isLowPower()** returns true if in low power mode, so wakeUp needed().
|
- **bool isLowPower()** returns true if in low power mode, so wakeUp needed().
|
||||||
|
|
||||||
Alternative way to wake up the device is to
|
Alternative way to wake up the device is to
|
||||||
do a dummy **read()**.
|
do a dummy **read()**.
|
||||||
|
27
libraries/ADC08XS/examples/ADC08XS_read_SPI1/.arduino-ci.yml
Normal file
27
libraries/ADC08XS/examples/ADC08XS_read_SPI1/.arduino-ci.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
platforms:
|
||||||
|
rpipico:
|
||||||
|
board: rp2040:rp2040:rpipico
|
||||||
|
package: rp2040:rp2040
|
||||||
|
gcc:
|
||||||
|
features:
|
||||||
|
defines:
|
||||||
|
- ARDUINO_ARCH_RP2040
|
||||||
|
warnings:
|
||||||
|
flags:
|
||||||
|
|
||||||
|
packages:
|
||||||
|
rp2040:rp2040:
|
||||||
|
url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
|
||||||
|
|
||||||
|
compile:
|
||||||
|
# Choosing to run compilation tests on 2 different Arduino platforms
|
||||||
|
platforms:
|
||||||
|
# - uno
|
||||||
|
# - due
|
||||||
|
# - zero
|
||||||
|
# - leonardo
|
||||||
|
# - m4
|
||||||
|
# - esp32
|
||||||
|
# - esp8266
|
||||||
|
# - mega2560
|
||||||
|
- rpipico
|
@ -0,0 +1,79 @@
|
|||||||
|
//
|
||||||
|
// FILE: ADC08XS_read_SPI1.ino
|
||||||
|
// AUTHOR: Rob Tillaart
|
||||||
|
// PURPOSE: demo
|
||||||
|
// URL: https://github.com/RobTillaart/ADC08XS
|
||||||
|
|
||||||
|
|
||||||
|
#include "ADC08XS.h"
|
||||||
|
|
||||||
|
|
||||||
|
ADC082S adc01(&SPI1); // use HWSPI
|
||||||
|
ADC124S adc02(5, 6, 7); // use SWSPI
|
||||||
|
|
||||||
|
uint32_t start, stop;
|
||||||
|
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
Serial.begin(115200);
|
||||||
|
Serial.println(__FILE__);
|
||||||
|
Serial.print("ADC08XS_LIB_VERSION: ");
|
||||||
|
Serial.println(ADC08XS_LIB_VERSION);
|
||||||
|
|
||||||
|
SPI1.begin();
|
||||||
|
|
||||||
|
adc01.begin(10);
|
||||||
|
adc02.begin(4);
|
||||||
|
|
||||||
|
Serial.println();
|
||||||
|
Serial.println("ADC\tMAXVALUE");
|
||||||
|
Serial.print("adc01\t");
|
||||||
|
Serial.println(adc01.maxValue());
|
||||||
|
delay(10);
|
||||||
|
start = micros();
|
||||||
|
uint16_t val = adc01.read(0);
|
||||||
|
stop = micros();
|
||||||
|
Serial.print("hwspi:\t");
|
||||||
|
Serial.print(stop - start);
|
||||||
|
Serial.print("\t");
|
||||||
|
Serial.println(val);
|
||||||
|
|
||||||
|
Serial.print("adc02\t");
|
||||||
|
Serial.println(adc02.maxValue());
|
||||||
|
delay(10);
|
||||||
|
start = micros();
|
||||||
|
val = adc02.read(0);
|
||||||
|
stop = micros();
|
||||||
|
Serial.print("swspi:\t");
|
||||||
|
Serial.print(stop - start);
|
||||||
|
Serial.print("\t");
|
||||||
|
Serial.println(val);
|
||||||
|
|
||||||
|
Serial.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
uint16_t val0 = adc01.read(0);
|
||||||
|
uint16_t val1 = adc01.read(1);
|
||||||
|
Serial.print("adc01:\t");
|
||||||
|
Serial.print(val0);
|
||||||
|
Serial.print("\t");
|
||||||
|
Serial.println(val1);
|
||||||
|
|
||||||
|
Serial.print("adc02:\t");
|
||||||
|
for (uint8_t ch = 0 ; ch < adc02.maxChannel(); ch++)
|
||||||
|
{
|
||||||
|
uint16_t val = adc02.read(ch);
|
||||||
|
Serial.print(val);
|
||||||
|
Serial.print("\t");
|
||||||
|
}
|
||||||
|
Serial.println();
|
||||||
|
|
||||||
|
delay(5000);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// -- END OF FILE --
|
@ -15,7 +15,7 @@
|
|||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/RobTillaart/ADC08XS.git"
|
"url": "https://github.com/RobTillaart/ADC08XS.git"
|
||||||
},
|
},
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"frameworks": "*",
|
"frameworks": "*",
|
||||||
"platforms": "*",
|
"platforms": "*",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name=ADC08XS
|
name=ADC08XS
|
||||||
version=0.2.0
|
version=0.2.1
|
||||||
author=Rob Tillaart <rob.tillaart@gmail.com>
|
author=Rob Tillaart <rob.tillaart@gmail.com>
|
||||||
maintainer=Rob Tillaart <rob.tillaart@gmail.com>
|
maintainer=Rob Tillaart <rob.tillaart@gmail.com>
|
||||||
sentence=Arduino library for ADC08XS 8, 10, 12 bit ADC (SPI), 2 or 4 channel.
|
sentence=Arduino library for ADC08XS 8, 10, 12 bit ADC (SPI), 2 or 4 channel.
|
||||||
|
Loading…
Reference in New Issue
Block a user