DIY Electric Car Forums banner

Arduino Software

7465 Views 13 Replies 8 Participants Last post by  Dave Koller
Anyone familiar with the C like language of arduino? I am currently using it for my microcontroller and could really use some help with the over current protection part of it
 int potPin = 2;    // select the input pin for the potentiometer
    int ledPin = 11;   // note onlly 5,6, 9,10,11 are PWM
    int wait = 0;     // variable to store the value coming from the sensor

    void setup() {
   //   Serial.begin(9600);
    pinMode(ledPin, OUTPUT);  // declare the ledPin as an OUTPUT

    void loop() {
    wait = analogRead(potPin) - 28; // read the value from the sensor
    if(wait > 950){
      digitalWrite(ledPin, LOW);
       digitalWrite(ledPin, HIGH); // turn the ledPin on
       delayMicroseconds(1023 - wait); // stop the program for some time
       digitalWrite(ledPin, LOW); // turn the ledPin off
       delayMicroseconds( wait); // stop the program for some time
   //   Serial.println( wait );
What I have so far is very rudimentary and I currently have this lem current sensor LEM LF306S LF 306-S 300A. When I put a magnet near it and print out values on a serial print line it read 1023 the maximum for arduino. Anyone on the forum ever work with arduino or know anyone who has written programs for motor controllers with it before?
1 - 2 of 14 Posts
Can you be more specific regarding the part you need help with?

Atmel chip in Arduino has 10 bit A/D inputs, which means digital values in range of 0-1023, so when you read 1023 that means 5V max input on the analog pin. If you go over 5V you may burn the input.

Please phrase your questions more specifically so we can better help you.

I wrote bunch of stuff for Arduino, including a version of BMS and EV Display, both of which monitor current from hall effect sensor.
Actually your code doesn't make too much sense. Are you trying to actually create PWM square wave with variable on/off times? You don't need to do this at all. Arduino lets you write a value to PWM output and it will automatically generate appropriate PWM signal based on the value.

I haven't looked at datasheet for your LEM sensor, is it bidirectional? i.e. does it have a zero point somewhere in the middle? If so, you need to calibrate it at first, by reading the input while there is no current and then use that value where you have ( -28 ) now.
1 - 2 of 14 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.