Electron Arduino Doppler

Hardware en software.
Bericht
Auteur
Goos
Berichten: 338
Lid geworden op: 16 nov 2011, 20:45
Roepletters: pa0sir

Re: Electron Arduino Doppler

#31 Bericht door Goos »

Hoi allen

Had wat tijd over vanmiddag en een peilroosje (36 leds ) gemaakt voor de arduino.
Misschien zitten er nog wat ideeen in voor deze en gene.
Het maakt gebruik van de poortregisters , leuke bijkomstigheid is dat dit 10 X sneller werkt
en even als voorbeeld een rondlopertje om te kijken of alles goed werkte.
Het probleem was eigenlijk hoe krijg ik led 0 van - 4 graden tot +5 graden ( eigenlijk altijd 1 graad afwijking )
Als volgt opgelost: door er bij de hoek 5 graden op te tellen en boven de 360 direct Led0 aan te sturen is eigenlijk niet elegant maar het werkt. ( hele proces duurt +/- 2.5 usec )
De analoge poortjes A0 t/m A4 worden hiervoor gebruikt , A5 kan dan als analoge ingang gebruikt worden, Nog niet geprobeerd , maar zag er wel hoogohmig uit op de scoop.
Voor de rest van het schema en aansluitingen zie:
http://www.nxp.com/documents/data_sheet/74HC137.pdf
http://www.nxp.com/documents/data_sheet/74HC237.pdf
Het koste me meer tijd om het schema te tekenen dan om het te maken ( op plak_eilandjes ).

Code: Selecteer alles

//Goos Visser PAoSIR.
// voorbeeldje voor een display met 36 leds voor de Arduino
// zie schema

void setup() {
 Serial.begin(9600);

// zet de eerste 5 bits direction register van poort C op output 
// dit zijn de analoge ingangen 0 t/m 4
DDRC=B11111;
}

int hoek;

void loop() {
 hoek=0;
 while (hoek<=359){
  delay(100);
  Serial.println(hoekgraden);
  leddisp();
  hoek = hoek+1;
 }
}




void leddisp() {
  int hgr = hoek + 5; // dit zorgt ervoor dat ledje 0 actief is tussen -5 en + 5 graden enz.
  int hoekleds;
  byte hl;
  if (hgr >=360) { hgr = 0; }
  hoekleds=hgr / 10;
  hl=hoekleds & B111;
  		// zet de minst signifikante 3 bits van var hgr in var hl

       PORTC=B10000+hl;
  //  PORTC=B10000+hl;
		// stuur tegelijk met de data de latchpuls (bit 4)
		// eventueel 2 x omdat de latchpuls n.l. erg kort is (+/- 200nsec )

  PORTC=B11000+hl;	// en maak de latchpuls weer hoog
		// en dit is voor het segment
		// schuif de zaak 3 bits naar rechts voor de segmenten
  hl=hoekleds>>3 & B111;
       PORTC=B01000+hl;
  //  PORTC=B01000+hl;
  PORTC=B11000+hl;
}
gr
Goos
led_peilroos.jpg
Peilen is het omgekeerde van een antennediagram opmeten.
pa0sir

Plaats reactie