Shaped:
Thanks Michael
I have had a look at Video Experimenter - nootropic design and that looks like a very interesting project.
Regarding the multiple Uno's, sorry for being stupid but im still no wiser.
When i purchased the Uno (r3) yesterday i charged ahead and built a Lcd display that displayed the input value of Analog(0) port which worked perfectly i might add
This is going to be used as a up/down counter for a CNC milling machine showing the coordinates of each axis. Now i am going to need 3 of these 1, 1 for each axis so 3 x Uno boards at £26, 3 x LCD and any additional components that i require it is going to be a very cost expensive addon.
I'm confused why you would need 3 separate Unos? Note, I am a beginner in terms of Arduinos/hardware, but I've been a professional programmer for 30+ years. The Uno has:
- 6 analog ports, A0, A1, A2, A3, A4, and A5;
- 8 digital ports that can emit a single high/low value, 0, 1, 2, 4, 7, 8, 12, and 13;
- 6 digital ports that can emit a value with PWM (pulse width modulation), 3, 5, 6, 9, 10, and 11.
The Video experimenter uses a few ports:
- Analog port A2, leaving A0, A1, A3, A4, A5
- Digital ports 2, 7, 8, and optionally 9, leaving 0, 1, 4, 12, and 13
- Digital PWM ports 6, 9 leaving 3, 5, 10, and 11
So each time through the loop, you could do 3 AnalogReads of different pins and display them all together.
I haven't tested this, but something like. Note, you would need to modify the screen stuff for what ever your screen defaults are. You would plug the x axis sensor into A1, the y into A2, and the z into A4 (I'm skipping A0 because my lcd screen uses that, and A2 because the Video Experimenter uses that.
// This will be different for your Uno, this is what I would use with my LcdShield
// That uses output pins 4, 5, 6, 7, 8, 9 and 10, and input pin A0
#include <LiquidCrystal.h>
// select the pins used on the LCD panel
LiquidCrystal lcd (8, 9, 4, 5, 6, 7);
const int pin_x = A1;
const int pin_y = A3;
const int pin_z = A5;
void setup (void)
{
pinMode (pin_x, INPUT);
pinMode (pin_y, INPUT);
pinMode (pin_z, INPUT);
lcd.init ();
lcd.clear ();
}
// Read a pin, and write the value on the screen at a given location
void print_axis (const char *string, int pin, int screen_x, int screen_y)
{
int value = AnalogRead (pin);
lcd.cursorTo (screen_x, screen_y);
lcd.print (string);
lcd.print (value);
// clear out up to 2 columns depending on the value
if (value < 10)
lcd.print (" "); // 2 blanks
else if (value < 100)
lcd.print (" "); // 1 blank
}
void loop (void)
{
print_axis ("X: ", pin_x, 0, 0);
print_axis ("Y: ", pin_y, 0, 8);
print_axis ("Z: ", pin_z, 1, 0);
}
Shaped:
Last week i purchased the Velleman K8040 Pic programmer with the intention building the above project with pic 16f627 chips, and after looking into the coding i would need to learn, i have give up, but if i could be bothered to learn the programming lanuage required for the PIC chips this looks like the cheapest path to follow. Not only the cheapest but circuit footprint would be a lot smaller.
Can the ATMEGA8 chip can be programmed via the Uno board and then put into a circuit of my own design as a standalone processor.
Yes, quite easily. For instance http://arduino.cc/en/Tutorial/ArduinoISP.