Giter Club home page Giter Club logo

ad520x's People

Contributors

ale11re avatar robtillaart avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

ad520x's Issues

Wrong SPI_MODE for AD8403

Hi,
I noticed that using pot.setValue(0, x) and pot.setValue(1, x) has effect on potentiometer 1 both in half scale.
Similarly, using pot.setValue(2, x) and pot.setValue(3, x) has effect on potentiometer 2.
Could not find effect on potentiometer 3 and 4.

Not an issue. Letting you know I used it on an ad8400 and it works fine.

I do have a couple of questions as I am trying to use it with a circuitpython project and there is no library for it. I looked through your library and I'm a newb with libraries. Is the baudrate 16000000?
Do you set the mode and the phase?
What is the format of the data sent to the chip?
I'm close to having it work but it's hit or miss if the chip reacts to the command or not

Thanks!!

Inverted Logic on AD8403

Hi,
I was playing around with the AD8403 chip and I noticed that Shutdown and Reset logic are inverted.
They're both active LOW. In fact, if shutdown is LOW, the output is disabled. Looking deep into the library source it's exactly the opposite. Cannot understand how it works with AD5204 as it shares the same logic principle.

VSPI not declared in this scope

I'm trying to use this code for an adafruit ESP32-S2 board using the 2.0.0 release of the arduino IDE and I get the following error:

`c:\Users\aerejb\Documents\Arduino\libraries\AD520X\AD520X.cpp: In member function 'void AD520X::begin(uint8_t)':
c:\Users\aerejb\Documents\Arduino\libraries\AD520X\AD520X.cpp:61:28: error: 'VSPI' was not declared in this scope
mySPI = new SPIClass(VSPI);
^~~~
c:\Users\aerejb\Documents\Arduino\libraries\AD520X\AD520X.cpp:61:28: note: suggested alternative: 'SPI'
mySPI = new SPIClass(VSPI);
^~~~
SPI

Compilation error: exit status 1`

My sketch is as follows:

#include "AD520X.h"

uint32_t start, stop;
// select, reset, shutdown, data, clock
AD8400 pot(10, 255, 255, 11, 13);  // SW SPI

// define inputs
const byte right_turn_input = A1;
const byte left_turn_input = 5;
const byte on_off_input = A3;
const byte speed_input = A2;

// define outputs
const byte right_turn_output = 2;
const byte left_turn_output = 4;
const byte on_off_output = 6;
const byte speed_output = 3;

// define variables

int speed_value = 0;
int satelite_count = 0;

bool motor_state = false;

float motor_offset_angle = 0;
float magnetic_declination = 0;
float boat_heading = 0;
float desired_heading = 0;

double actual_lattitude = 0;
double actual_longitude = 0;
double desired_lattitude = 0;
double desired_longitude = 0;





void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("Begin program");

  pot.begin(0); // set initial potentiometer value to zero (this gives you the wiper resistance 50-100 ohms)

  // define pin inputs
  pinMode(right_turn_input, INPUT);
  pinMode(left_turn_input, INPUT);
  pinMode(on_off_input, INPUT);
  pinMode(speed_input, INPUT);

  // define pin outputs
  pinMode(right_turn_output, OUTPUT);
  pinMode(left_turn_output, OUTPUT);
  pinMode(on_off_output, OUTPUT);
  pinMode(speed_output, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
  delay(10);
  on_off();
  
  if (motor_state == true) {
    speed_calculation();
    steering_calculation();
  }
  //Serial.println(" ");
}

void speed_calculation() {
  // figure out what the speed value is
  
  speed_value = analogRead(speed_input) / 4;
  if (speed_value > 256) { speed_value = 256; }
  if (speed_value < 20) { speed_value = 0; }
  pot.setValue(0,speed_value);  // Set digital potentiometer value for the motor to read
  //analogWrite(speed_output, speed_value);
  Serial.print("Output speed value = "); Serial.print(speed_value); Serial.print(", ");
}

void steering_calculation() {
  // figure out what the steering should change
  if (digitalRead(right_turn_input) == 1) {
    digitalWrite(left_turn_output, 0);
    digitalWrite(right_turn_output, 1);
    Serial.print("Turn Right,  ");
  }
  delay(5);
  
  if (digitalRead(right_turn_input) == 0) {
    digitalWrite(right_turn_output, 0);
    Serial.print("deactivate right turn,  ");
  }
  delay(5);
  
  if (digitalRead(left_turn_input) == 1) {
    digitalWrite(right_turn_output, 0);
    digitalWrite(left_turn_output, 1);
    Serial.print("Turn Left,  ");
  }
  delay(5);
  
  if (digitalRead(left_turn_input) == 0) {
    digitalWrite(left_turn_output, 0);
    Serial.print("deactivate left turn,  ");
  }
  delay(5);
}

void on_off() {
  motor_state = digitalRead(on_off_input);
  digitalWrite(on_off_output, motor_state);
  
  if (motor_state == true) {
    Serial.println(", Motor on");
  }
  else {
    Serial.println(", Motor off");
  }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.