I need help to construct a program for calculate an encoder pulse to my microcontroller arduino Duemilanove. My encoder will generate 12 pulse for one complete rotation, can somebody here help me to solve my problem I really need help because I've no idea how to construct the program. Thanks in advance
We generally like to help those that help themselves. If you have a sketch that isn't operating as you wish, simply post it here and someone will most likely help you. If you haven't started to learn programming an arduino yet, I suggest you read over the example sketches in the arduion file menu and using the reference page on the arduino site: Arduino - Home, learn what the commands and statement do. There are also tutorials to help begineers learn programming the arduino if that way works better for you.
Give a man a fish and feed him for a day, teach him to fish and he can feed himself for life.
I've already try on the example that has been given in adruino website called State Change Detection http://arduino.cc/en/Tutorial/ButtonStateChange but it not worked as I want. When I want to monitor the result using Serial Monitor, the microcontroller keeps sending the output, but I'm not give the supply to the encoder yet. So how to solve this problem is it the program that I've chosen is wrong or something wrong with the program.
// this constant won't change:
const int buttonPin = 2; // the pin that the pushbutton is attached to
const int ledPin = 13; // the pin that the LED is attached to
// Variables will change:
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
void setup() {
// initialize the button pin as a input:
pinMode(buttonPin, INPUT);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
}
void loop() {
// read the pushbutton input pin:
buttonState = digitalRead(buttonPin);
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then the button
// wend from off to on:
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter, DEC);
}
else {
// if the current state is LOW then the button
// wend from on to off:
Serial.println("off");
}
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;
// turns on the LED every four button pushes by
// checking the modulo of the button push counter.
// the modulo function gives you the remainder of
// the division of two numbers:
if (buttonPushCounter % 4 == 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}