MCU boards - test og udvikling

MCU boards - test og udvikling

MCU boards

Tanken med denne blog er at samle nyttige links og andet til Micro Board.
Vi er i klubben startet op med et Arduino projekt og bloggen vil derfor være stedet hvor der kan deles "guldkorn" og der kan spørges, når / hvis I "kører fast" med Jeres eksperimenter
Gruppen lige nu er Istvan ( OZ1EYZ), Michael ( OZ5WU ), Niels ( OZ1JLT ), Jesper ( OZ9AFK ), Villads ( OZ3CM ) og Ole ( OZ8NZ ). Og alle er velkomne til at deltage og komme med gode idéer, så kom ud af "busken og deltag her til glæde for alle med interesse for disse små boards.

Demo af interrupt funktion

Arduino UNOPosted by Ole Bent Nielsen Thu, February 12, 2015 18:59:57

Her er et lille test setup, til demo af hvordan interrupt kan gøres på et Arduino UNO board, samme funktioner kan bruges på Mega boardet, som har flere indgange til interrupt. UNO board har kun 2 indgange der kan bruges. Der kan ses meget mere i dokumentationen til Arduino.

Følgende er et lille program der kan vise interrupt funktionen på et UNO board

/* Simpel demo af interrupt funktion til Arduino uno board
Interrupt input er digital pin 2, interrupt her er ved skift af status på pin
der er indsat en counter som kan læses vha af debug terminal, hver gang der er talt til
100 resettes counter til 0

Test gøres ved at sætte "pullup" på pin 2 f.eks. 220 ohm, hvorefter pin 2 lægges til 0 for at tælle
Bemærk at der når der testes kan blive mere end en værdi højere for hver læsning, selv
om status ikke ændres, dette skyldes at der er "prell" i den forbindelse der lægges til
0, det er derfor vigtigt at sørge for ikke at få mere end 1 puls hvis dette skal bruges til
andet end en demo.

Interrupt kan være på følgende state
LOW to trigger the interrupt whenever the pin is low,
CHANGE to trigger the interrupt whenever the pin changes value
RISING to trigger when the pin goes from low to high,
FALLING for when the pin goes from high to low.

OZ8NZ den 12.02.2015

*/

int pin = 13;
volatile int state = LOW;
volatile int cnt = 0 ; /* counter fra interupt */

void setup()
{
pinMode(pin, OUTPUT);
attachInterrupt(0, blink, CHANGE); /* Digital pin 2 */
Serial.begin(9600);
}

void loop()
{
delay(500);
digitalWrite(pin, state);
Serial.print(" Counter har talt til ");
Serial.println(cnt);
if (cnt >= 100) /* Reset counter hvis > end = 100 */
{
cnt =0;
}
}

void blink()
{
state = !state;
++cnt; /* add 1 ved interrupt */
}



  • Comments(0)//mcu.oz8nst.dk/#post10