My first go with the Arduino
2010-11-17
I have some interesting plans, but to get there I needed to learn something about microprocessors and programming them. Just browsing around I realised that the Arduino seems to be the more popular and thus more “supported” architecture and bought myself an Arduino UNO from netram.co.za which for all intents is a beginners board.
Arduino UNO Specifications
Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Clock Speed 16 MHz
I have not had much chance to get much further than make some lights flash but my quick foray into the language reference guide didn’t scare me off and that is a good thing.
My first attempt at the code was over 60 lines, halved it with a couple of while loops to look like this
void setup() { pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); } void loop() { int Channel_Counter = 9; int Highest_Channel = 13; int Lowest_Channel = 9; int LampDelay = 100; while (Channel_Counter <= Highest_Channel) { digitalWrite(Channel_Counter, HIGH); if (Channel_Counter < Highest_Channel) { delay(LampDelay); digitalWrite(Channel_Counter, LOW); } Channel_Counter = Channel_Counter + 1; } while (Channel_Counter >= Lowest_Channel) { digitalWrite(Channel_Counter, HIGH); if (Channel_Counter > Lowest_Channel) { delay(LampDelay); digitalWrite(Channel_Counter, LOW); } Channel_Counter = Channel_Counter - 1; } }
which resulted in (sorry about the technocrap only 5 second track I could find)
