Archive for the ‘c-kode’ Category

gratis source code online

sourcecodeonline.com
asp tutorials online

virkelig cool site med gratis kode til alle mulige sprog, anbefales

  • Share/Bookmark

solar tracker med arduino

Okay, så blev jeg inspireret til at kikke lidt på en simpel solartracker og har lavet lidt test kode til arduino.

Inspirationen var en lille video på youtube, en gut der bruger en gammel kontor stol som base for hans solar tracker.

DSC00748

Det er klart at mekanikken skal komme fra noget man kan få fat i meget billigt eller gratis og så added lidt her og der fra feks biler, en visker motor måske, se denne løsning på mekanikken, simpel og genial ;)

Koden til mit lille arduino solar tracker eksperiment er lavet med to solceller fra to skrottede solarhave lamper, og en standard freeduino fra nuelectronics.

Ikke alt kode i program bruges.

Filmen her viser hvad program stumpen kan:

/* * solar tracker first test program * Home: http://s-educator.org * 290809  */ int ledPin13 = 13;                // LED connected to digital pin 13 on arduino board int ledPin2 = 2;                // red LED connected to digital pin 2 int ledPin3 = 3;                // yellow LED connected to digital pin 3 int ledPin4 = 4;                // green LED connected to digital pin 4 int ledPin5 = 5;                // yellow LED connected to digital pin 5 int ledPin6 = 6;                // red LED connected to digital pin 6 int ledPin7 = 7;                // green D2 LED connected to digital pin 7 int lastvalue; char sensorData[10]; void setup()                    // run once, when the sketch starts {   pinMode(ledPin2, OUTPUT);      // sets the digital pin as output   pinMode(ledPin3, OUTPUT);      // sets the digital pin as output   pinMode(ledPin4, OUTPUT);      // sets the digital pin as output   pinMode(ledPin5, OUTPUT);      // sets the digital pin as output   pinMode(ledPin6, OUTPUT);      // sets the digital pin as output   pinMode(ledPin7, OUTPUT);      // sets the digital pin as output } void loop()                     // run over and over again {     if ((analogRead(4) == analogRead(5)+10))       {          if ((analogRead(4) <= analogRead(5)+10) && (analogRead(4)+10 >= analogRead(5)))           {             digitalWrite(ledPin4, HIGH);             digitalWrite(ledPin5, LOW);             digitalWrite(ledPin3, LOW);             digitalWrite(ledPin6,LOW);             digitalWrite(ledPin2, LOW);           }        }    if (analogRead(4) > analogRead(5)+100)   {       digitalWrite(ledPin5, HIGH);       digitalWrite(ledPin4, LOW);       digitalWrite(ledPin3, LOW);       digitalWrite(ledPin6,LOW);             digitalWrite(ledPin2, LOW);   }   if (analogRead(4)+100 < analogRead(5))   {       digitalWrite(ledPin3, HIGH);        digitalWrite(ledPin4, LOW);       digitalWrite(ledPin5, LOW);       digitalWrite(ledPin6,LOW);             digitalWrite(ledPin2, LOW);   }      if (analogRead(4) > analogRead(5)+150)   {       digitalWrite(ledPin6, HIGH);       digitalWrite(ledPin5, LOW);       digitalWrite(ledPin4, LOW);       digitalWrite(ledPin3, LOW);   }   if (analogRead(4)+150 < analogRead(5))   {      digitalWrite(ledPin2, HIGH);     digitalWrite(ledPin3, LOW);       digitalWrite(ledPin4, LOW);      digitalWrite(ledPin5, LOW);   } } // ******************************************************************************************************************************** // *****  Opsamler spænding fra analog 4  ***** // ******************************************************************************************************************************** void getcurrent(char *current) {  int sign, whole; sign=false; // kommer fra gettemperatur routinen         if(sign) current[0]='-';         else             current[0]='+'; // analog read //sensor = 3; whole = 0; whole = analogRead(4); whole = whole;   if (whole < 513) whole = 513;        if (whole > 715) whole = 513;      int mappedValue = map( whole, 513, 700, 0, 5000 ); // 513 svarer til 2,5 volt og 715 svarer til 25, volt + 5x187mvolt, 5000 er 5 ampere ** 700 calibreretr 230809         current[1]= (mappedValue % 10000)/1000 +'0' ;         current[3]= (mappedValue % 1000)/100 +'0';         current[2]=',';         current[4]= (mappedValue % 100)/10 +'0';       //whole=whole;+24; //calibrering af måling         current[5]= (mappedValue % 10)+'0';         current[6] = '\0'; delay(1000UL);             // delay 30 sec }       // ******************************************************************************************************************************** // *****  Opsamler målt spænding 1:1 (maks 5 v) og putter data i en string (den varialen som bruges til at kalde routinen med)***** // ******************************************************************************************************************************** void getvoltage(char *voltage) {   int sign,  whole; //sensor = 1; sign=false; // kommer fra gettemperatur routinen         if(sign) voltage[0]='-';         else             voltage[0]='+'; // analog read  whole = 0;  whole = analogRead(0); whole = whole; // diveder med 2 ved 0 til 5 volt int mappedValue = map( whole, 0, 1023, 0, 2000 ); //         voltage[1]= (mappedValue % 10000)/1000 +'0' ;         voltage[2]= (mappedValue % 1000)/100 +'0';         voltage[3]=',';         voltage[4]= (mappedValue % 100)/10 +'0';       //whole=whole;+24; //calibrering af måling         voltage[5]= (mappedValue % 10)+'0';         voltage[6] = '\0'; //      voltage[1]= (whole % 10000)/1000 +'0' ; //      voltage[2]= (whole % 1000)/100 +'0'; //              voltage[3]=','; //      voltage[4]= (whole % 100)/10 +'0';       //whole=whole;+24; //calibrering af måling //      voltage[5]= (whole % 10)+'0'; //       voltage[6] = '\0'; delay(1000UL);             // delay 30 sec }
DSC00752
  • Share/Bookmark

ds for formula udviklings tools fra datalogic – kompiler bugs

Under arbejde med programmering af datalogic håndscanner/terminal f734, har jeg oplevet flere sære Kompiler fejl !! UPDATE 150909: det var en kode bug ;/…


datalogic_f734

1: kompiler kunne ikke finde ud af at kopiere en variabel indud strcpy( wr_record.qnty, indud );
Når jeg kopirer strengen direkte ind strcpy( wr_record.qnty, “Ind” ); virker det !! meget sær fejl….

Fejlen kom til udtryk i serial kommunikationen..,  ingen logik, idet den del af programmet jeg tilskrev variablen intet har med seriel kommunikation at gøre…

2: Hvis jeg bruger gotoxy og printf ”                “  inde i mellem kb_hrequsst/dec_hrequst og kb_abort/dec_abort kommer der virkeligt sære fejl..

Den fejl jeg oplevede var når jeg brugte arrows <-   og ->, så slettede terminalen linie 2 og 3 i  display.. Meget sært..

OBS: Det ser ud til at hvis man skriver i display samtidigt med et dec_hrequest og kb hrequest så giver det problemer med håndtering af variable. Vent med at skrive i display til kb_abort, dec_abort er esekveret

  • Share/Bookmark
Tilmeld til Nørd indlæg
Vind Nørd

Bygge guide til mini vindmøller. Incl. software til beregning af hvilke dc motorer der kan yde nok til det kan svare sig at bygge vindmølle med dem. Software kan også bruges til vawt møller. + De-sulfatterings guide til bly akkumulatorer, med el diagram til desulfatter. Forum og bonus.
Nørd Rss Feeds
byg en solcelle lav el selvSolar arduino open source hardware til styring og dataopsamlingArduino
Vind byg et stoker fyr selvStoker
peltier elementer er fremtidens el produktion af varmePeltier neorufeedback kan bruges til mental fitness, abonner på hjerne feedHjerne
Sprog Nørd
Nørd Søger

Vil du have teksten på vores hjemmeside læst højt, kan du hente et lille gratis program på www.adgangforalle.dk - (Åbner nyt vindue)

Vind Nørd
Et kloarkrør på 1 meter, en gammel dc motor, lidt fittings og en 1000 watts husstandsmølle er klar. Alternative energikilder er klar nu og her. Tilmeld dig her og få login til kodeords beskyttede indlæg.

E-mail:

Nørd elektronik guide

Jestine Young underviser i at reparere på alle former for elektronik. Se mere om indhold i ebogs serien her.