|
Post by Richard OConnell on Jun 7, 2012 1:07:56 GMT -5
Picked up an Arduino UNO today and I have 2 questions.
1) What can this thing NOT do?
2) When can I expect to wear it out?
So far its capabilities are beyond impressive. I might start writing some open source software for anyone needing it or snippets for developers.
|
|
GrantB
Junior Member
Joined: February 2012
Posts: 61
|
Post by GrantB on Jun 7, 2012 1:37:16 GMT -5
They are pretty cool! I have the Decimillia but i think i may upgrade to the MEGA for the turbine controller. I think i was close on the input limit when i wrote everything out.
|
|
|
Post by turbochris on Jun 7, 2012 9:06:10 GMT -5
i have one in the little bike. It reads ~0-5 volts from a magnetic sensor throttle from a Razor scooter and outputs an rc servo type signal, theres also a trim switch used to start and stop the turbine. Someone over at the arduino forum wrote that program. I wanted to include N2 overspeed and found that we needed the timer which was being used by the servo library. Sal A figured it out and found another servo library that didn't need the timer. the freed timer now helps control N2
When you get it figured out maybe you can add a streak timer to my setup. Crimson Editor is really good for looking in the libraries to see what resources are used as well as the comments.
I don't know much about programming these but as far as hooking one up..... no problem
|
|
|
Post by Richard OConnell on Jun 7, 2012 12:14:57 GMT -5
I have the programming down, but I think I need to start learning resistors Also, I need to pick up a decent relay shield, but I'm still looking into how they integrate into the controller. The pins on the controller can only support 20mA each or 2A across the entire board so I will have to keep that in mind. EDIT: I think my next one will be the MEGA as well, I saw one at the store and it lookied awesome, but I decided to start simple for now.
|
|
GrantB
Junior Member
Joined: February 2012
Posts: 61
|
Post by GrantB on Jun 7, 2012 12:38:27 GMT -5
If i remember correctly the MEGA has more processing power and ram so thats probably an even better reason to get it. I wonder if Moore's law will apply to the arduino
|
|
wolfdragon
Senior Member
Joined: April 2011
Posts: 287
|
Post by wolfdragon on Jun 7, 2012 16:32:03 GMT -5
another one to look into if the arduino doesn't quite do it for you in time or memory is the maple by leaf labs, but that one isn't quite as user friendly
Trying to figure out if i want to use a MEGA for the test stand controller, the design for the operational controller will be just a stripped down version of that
|
|
|
Post by Richard OConnell on Jun 7, 2012 21:21:27 GMT -5
I also have some cool diagrams I have come up with for using less pins when adding electronics if anyone is in need. I have some cool methods in cascading relays that are really simple once you get the hang of them.
|
|
rythmnbls
Veteran Member
Joined: August 2011
Posts: 145
|
Post by rythmnbls on Jun 8, 2012 6:37:37 GMT -5
I use one for a tachometer and hope to eventually expand it into a home brew ECU. Photo of the prototype on my old Kamps turbine. Close up of the sensor board, there's a hall effect device at about 9'oclock to the turbine shaft, its obscured by a square yellow cap. Schematic of the sensor board, the hall effect device is a Honeywell SS495, the op amps are 741's And a short video of it in action. s87.photobucket.com/albums/k142/madluther/ECU/?action=view¤t=100_0572.mp4Code for the arduino. //-------------------------------------------------------------- // // Interrupt driven sketch to measure RPM, // it expects a suitable signal on pin digital 2 / external int0 // Display is via LCD. // //-------------------------------------------------------------- #include <LiquidCrystal.h>
LiquidCrystal lcd(11, 10, 9, 8, 7, 6);
int pwmPin5 = 5; // 976hz test signal on pin 5, connect it to pin 2 to test. int pwmPin3 = 3; // 488Hz test signal on pin 3, connect it to pin 2 to test. int dutycycle = 128; // 128 = 50% duty cycle
volatile word rpmcount;
unsigned long rpm;
unsigned long timeold;
void setup() { pinMode(pwmPin5, OUTPUT); pinMode(pwmPin3, OUTPUT); analogWrite(pwmPin5, dutycycle); // generate a 976Hz signal for testing. Should show 58500 rpm analogWrite(pwmPin3, dutycycle); // as above, although at 29000 rpm lcd.begin(20,4); // Setup the LCD, use 16,2 for a 16x2 LCD, etc. lcd.clear(); // start with a blank screen
attachInterrupt(0, rpm_fun, RISING); //enable int0
rpmcount = 0; rpm = 0; timeold = 0; }
void loop() { lcd.setCursor(0,0); lcd.print("RPM: "); if (rpmcount >= 100) { //Update RPM every 100 counts, increase this for better RPM resolution, //decrease for faster update
rpm = 1000000*60/(micros() - timeold)*rpmcount; //rpm = (micros() - timeold); timeold = micros(); rpmcount = 0; lcd.setCursor(5,0); lcd.print(" "); lcd.setCursor(5,0); lcd.print(rpm); }
}
void rpm_fun() { rpmcount++; //Each rotation, this interrupt function is run }
//-----------------------------------------------
Feel free to copy / reuse this code.
|
|
|
Post by turbochris on Jun 8, 2012 9:22:16 GMT -5
if you need more than 20 ma try a mosfet instead of a relay. theres so many projects online that use mosfets to boost the current capabilities of the arduino. just find a dew it's pretty simple to hook up you just need a mosfet and reesistor.
You can come get this mega i have if you want to play with it. I have a pile of mosfets around here somewhere we used to burn them up on the electronic fuel injection system we ran a few years back.
I have this industrial bluetooth module, you think you could write a little app and program an arduino so i can start my little bike via my cellphone? I'd like to be able to work all the crap in my van the same way. That would be awesome!
|
|
|
Post by Richard OConnell on Jun 8, 2012 12:05:58 GMT -5
Thanks chris. I might have to try some out, but I'll probably just stick to the relay shield. It has mosfets integrated and kills two birds with one stone. The built in mosfets are needed to drive enough current to open and close the relay since 20 mA @ 5v wouldnt be able to do it on its own.
|
|
lescure
New Member
Hello,
Joined: September 2018
Posts: 1
|
Post by lescure on Sept 10, 2018 10:19:04 GMT -5
Hello, Thank you for the preceding post to be able to have rpm and temp on LCD with arduino. I run T 312 Rolls Royce turbine and I would like to be able to use arduino or any device to run it at a specific rpm with kind of PID speed controlled. Any help ? Thank you so much Claude
|
|
tamosan
New Member
Joined: December 2013
Posts: 4
|
Post by tamosan on Dec 27, 2018 9:27:06 GMT -5
" There is sth wrong with this sketch where is the input connection of hall sensor to Arduino ? and why there is not any input pin setup on the code for sensor ? " Code for the arduino. //-------------------------------------------------------------- // // Interrupt driven sketch to measure RPM, // it expects a suitable signal on pin digital 2 / external int0 // Display is via LCD. // //-------------------------------------------------------------- #include <LiquidCrystal.h>
LiquidCrystal lcd(11, 10, 9, 8, 7, 6);
int pwmPin5 = 5; // 976hz test signal on pin 5, connect it to pin 2 to test. int pwmPin3 = 3; // 488Hz test signal on pin 3, connect it to pin 2 to test. int dutycycle = 128; // 128 = 50% duty cycle
volatile word rpmcount;
unsigned long rpm;
unsigned long timeold;
void setup() { pinMode(pwmPin5, OUTPUT); pinMode(pwmPin3, OUTPUT); analogWrite(pwmPin5, dutycycle); // generate a 976Hz signal for testing. Should show 58500 rpm analogWrite(pwmPin3, dutycycle); // as above, although at 29000 rpm lcd.begin(20,4); // Setup the LCD, use 16,2 for a 16x2 LCD, etc. lcd.clear(); // start with a blank screen
attachInterrupt(0, rpm_fun, RISING); //enable int0
rpmcount = 0; rpm = 0; timeold = 0; }
void loop() { lcd.setCursor(0,0); lcd.print("RPM: "); if (rpmcount >= 100) { //Update RPM every 100 counts, increase this for better RPM resolution, //decrease for faster update
rpm = 1000000*60/(micros() - timeold)*rpmcount; //rpm = (micros() - timeold); timeold = micros(); rpmcount = 0; lcd.setCursor(5,0); lcd.print(" "); lcd.setCursor(5,0); lcd.print(rpm); }
}
void rpm_fun() { rpmcount++; //Each rotation, this interrupt function is run }
//-----------------------------------------------
|
|
hacktools
New Member
Joined: September 2023
Posts: 1
|
Post by hacktools on Sept 17, 2023 11:15:49 GMT -5
The Hall sensor is attached to the digital pin 2 on arduino
|
|