Extracting Analog Data from Arduino

Hi Arduino

I am trying out this new concept whether will it be possible to make use of Arduino Uno to extract data as analog signals from data streaming in from SPI. Current small project of mine. As mostly people talked about ADC is possible for Arduino. However I would like a reverse which is DAC. As Uno does not support yet, but I wonder if there is anyway to overcome this without any 3rd party component.

Currently, I am trying to test TMR/GMR chips from Infineon TLE5501B or TLI5501B.
(https://download.mikroe.com/documents/datasheets/TLE5501-DS-v01_00--DS-v01_00-EN.pdf)

However I would like to continue to test and try out whether is it still possible to extract data received via SPI interface and have Arduino to pump out an analog signal using its own analog channel or PWM channel?

Please do advice for me if it is possible. If there is any similar post, please do link me up.

Hope to hear from you best guys soon.

Cheers.
Dan

Sorry, this make no sense to me.

make use of Arduino Uno to extract data as analog signals from data streaming in from SPI.

The Arduino Uno PWM outputs can output 8 bit resolution, mediocre quality audio signals using very high frequency (61 kHz) PWM. One example is the Talkie library, which converts digital data to speech.

But you will always need external filter components, so you might as well use an ADC module.

Hi Jremington

Thank you for the reply. Merry Christmas.

Sorry I am new to Arduino programming so I might be confused on my side.

Currently, I have TLE5501B connected via SPI to Arduino. Please ignore my analog question.
I am looking to read the data printed out from the Data pin. Is it in Binary? That will be good too.
What I really want is to be able to read the data or print out the data in its raw form as much as it can.

So another sensors I am trying out is the VL53L1X, which is connected via I2C.
I managed to read its distance measured via the serial monitor.
However, is it possible to read the data form? instead of the supposed distance measured display?

Like to read out its binary bits in the data [ 1 0 1 1 0 1 0 0 ] or something like that?
I search the examples on the
Arduino IDE >> File >> Digital >> ...
theres no example in regards printing the raw data out.

Am I in the right direction here?

#include <Wire.h>
#include <VL53L1X.h>

VL53L1X sensor;

#define sensor_reset_pin  A0

//USE_I2C_2V8K;
void setup(){
  Serial.begin (115200);
  pinMode(sensor_reset_pin, OUTPUT);
  pinMode(13, OUTPUT);

  digitalWrite(sensor_reset_pin, LOW);

 // Initalisiert I2C
  while(!Serial);
  Wire.begin();
  Wire.setClock(400000);
  Wire.beginTransmission(0x29);
  
  digitalWrite(sensor_reset_pin,HIGH);
  delay(200);
  sensor.init();
  sensor.setAddress(0x33);
  sensor.setDistanceMode(VL53L1X::Short);
  sensor.setMeasurementTimingBudget(10000);
  sensor.startContinuous(10);
  sensor.setTimeout(100);

  
}
void loop(){
  int i = sensor.read();
  Serial.print(" Distance: ");
  Serial.print(sensor.read()); // can I print this out as a raw binary?
  Serial.print(" mm ");
  delay(100);
  if (sensor.timeoutOccurred()) { 
    Serial.print(" TIMEOUT ");
  }

  
  if(i > 200){
    digitalWrite(13,HIGH);
  }else{
    digitalWrite(13,LOW);
  }
  Serial.println();

}

I gotten this code from another forum and edit a bit on my own. Current it is able to display a measured distance, but can I print this readout as a raw binary data itself or there is no way around it?

Numbers are stored in the Arduino, as with any computer, in binary form.

Serial.print() can be used to display those numbers in human readable forms using the optional keywords DEC (the default), HEX for hexadecimal and BIN for binary.

Example:

int distance = 100;
Serial.println(distance); //display using decimal representation
Serial.println(distance, HEX); //display using hexadecimal representation
Serial.println(distance, BIN); //display using binary representation