Pagina 1 van 1

Hulp bij een foutje gezocht

Geplaatst: 04 apr 2022 15:32
door Onmogelijkhier
Ik heb een stomme fout begaan en nu heb ik een sketch van mijn computer gewist en weet niet meer waar hij vandaan komt.
De sketch staat nog wel op een Arduino NANO dus is mijn vraag kan ik hem daar van afhalen ?

Marcel

Re: Hulp bij een foutje gezocht

Geplaatst: 04 apr 2022 16:14
door piksov
nee helaas ...

Re: Hulp bij een foutje gezocht

Geplaatst: 04 apr 2022 17:22
door Onmogelijkhier
Dat is dan mooi stom geweest van mij.

Re: Hulp bij een foutje gezocht

Geplaatst: 04 apr 2022 17:50
door Momfer
Staat het bestand niet meer in je prullenbak?

Zo ja, dan is het betreffende bestand nog terug te halen.

Re: Hulp bij een foutje gezocht

Geplaatst: 05 apr 2022 09:14
door Onmogelijkhier
Ne jammergenoeg niet. Maar we maken er geen probleem van, zoeken naar een programmaatje dat het zelfde doet (temperatuur meten) en dan ijken en aanpassen.

Re: Hulp bij een foutje gezocht

Geplaatst: 05 apr 2022 09:26
door Momfer
jammer!

succes met het aanpassen!

Re: Hulp bij een foutje gezocht

Geplaatst: 05 apr 2022 10:16
door Onmogelijkhier
Als het weer lukt want het Arduino taaltje blijft moeilijk tot een raadsel voor mij.
Werk veel met jatten van overal en dan maar kijken wat ik kan samenvoegen en dan kijken of het werkt.
Ik snap niet dat ze het niet iets eenvoudiger hebben gemaakt met eenvoudige If / then enz opdrachten :)

Re: Hulp bij een foutje gezocht

Geplaatst: 05 apr 2022 14:37
door shoven
Onmogelijkhier schreef: 05 apr 2022 10:16 Als het weer lukt want het Arduino taaltje blijft moeilijk tot een raadsel voor mij.
Werk veel met jatten van overal en dan maar kijken wat ik kan samenvoegen en dan kijken of het werkt.
Ik snap niet dat ze het niet iets eenvoudiger hebben gemaakt met eenvoudige If / then enz opdrachten :)
Dat valt toch wel mee? Het taaltje is een vrij standaard imperatieve programmeertaal, goed vergelijkbaar met C/C++/Java, dat soort spul.
Een if-then commando zit er gewoon in hoor (maar dan zonder het woordje 'then' 8-) ).

Er zijn ook wel wat online tutorials te vinden die je stap-voor-stap door de taal en de IDE mee nemen.

Voorbeeldje uit een van de DCC libraries van Ruud Boer (OK, met wat erg lelijke code erin, dat wel):

Code: Selecteer alles

void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data)
  {
    // Convert NMRA packet address format to human address
    address -= 1;
    address *= 4;
    address += 1;
    address += (data & 0x06) >> 1;

    // digitalWrite(1,LOW);

    boolean enable = (data & 0x01) ? 1 : 0;

    for (int i=0; i<maxaccessories; i++)
    {
      if (address == accessory[i].address)
      {
        if (enable) accessory[i].dccstate = 1;
        else accessory[i].dccstate = 0;
      }
    }  
  } //END BasicAccDecoderPacket_Handler

Re: Hulp bij een foutje gezocht

Geplaatst: 05 apr 2022 15:20
door Onmogelijkhier
shoven schreef: 05 apr 2022 14:37
Dat valt toch wel mee? Het taaltje is een vrij standaard imperatieve programmeertaal, goed vergelijkbaar met C/C++/Java, dat soort spul.
Een if-then commando zit er gewoon in hoor (maar dan zonder het woordje 'then' 8-) ).

Er zijn ook wel wat online tutorials te vinden die je stap-voor-stap door de taal en de IDE mee nemen.

Voorbeeldje uit een van de DCC libraries van Ruud Boer (OK, met wat erg lelijke code erin, dat wel):

Code: Selecteer alles

void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data)
  {
    // Convert NMRA packet address format to human address
    address -= 1;
    address *= 4;
    address += 1;
    address += (data & 0x06) >> 1;

    // digitalWrite(1,LOW);

    boolean enable = (data & 0x01) ? 1 : 0;

    for (int i=0; i<maxaccessories; i++)
    {
      if (address == accessory[i].address)
      {
        if (enable) accessory[i].dccstate = 1;
        else accessory[i].dccstate = 0;
      }
    }  
  } //END BasicAccDecoderPacket_Handler
Zoiets heb ik ook staan en daarmee gaat een LED aan door drukken op een knopje :)

if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
Kan je lezen als (IF PIN 2 IS HOOG Then LedPin is HOOG ELSE LedPin is LAAG
Het stukje hieronder is voor mij nog wel te volgen maar veel snap ik geen hout van.

Code: Selecteer alles

// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2;     // het nummer van de drukknop pin D2 = digitaal 2
const int ledPin =  13;      // het nummer van de LED pin D13 = digitaal 13 deze LED zit ook op de Arduino zeld

// variables will change:
int buttonState = 0;         // variabele voor het lezen van de drukknop status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) { //was HIGH
    // turn LED on:
    digitalWrite(ledPin, HIGH); //was HIGH
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW); //was LOW
  }
}

Re: Hulp bij een foutje gezocht

Geplaatst: 05 apr 2022 15:58
door shoven
Ja, sommige programmeurs zijn helaas in staat code te schrijven die uitblinkt in onleesbaarheid.
Een statement als

address += (data & 0x06) >> 1;

waarin men lekker met bits zit te spelen, schrikt menigeen wel af. Men denkt lekker compact te coderen, maar duidelijker wordt het er niet van. Ook goed documenteren/toelichten in de code is nogal eens een uitdaging.

Zoals ik zei zijn er aardig wat tutorials te vinden op diverse Arduino sites, dat helpt. Het helpt wel als je wat basiskennis van C, C++, Java of vergelijkbare talen hebt.
En vraag gewoon, er zitten hier inmiddels aardig wat mensen die het nodige van programmeren weten.

Re: Hulp bij een foutje gezocht

Geplaatst: 05 apr 2022 19:31
door Onmogelijkhier
Geen kennis van C of C++ of java.
Heel vroeger wel met mnemoniks gewerkt en ook nog met 8bits rijtje van 1nen en nullen en ook programma's gemaakt met Dbase, dat was mijn kennis van programmeren.
En misschien was het voor mij makkelijker te lezen als inderdaad het beter gedocumenteerd of toegelicht werd.
Maar we puzzelen gewoon door.

Re: Hulp bij een foutje gezocht

Geplaatst: 06 apr 2022 07:08
door PaulRoman
shoven schreef: 05 apr 2022 14:37 Dat valt toch wel mee? Het taaltje is een vrij standaard imperatieve programmeertaal, goed vergelijkbaar met C/C++/Java, dat soort spul.
Een if-then commando zit er gewoon in hoor (maar dan zonder het woordje 'then' 8-) ).
De Arduino IDE gebruikt de avr-gcc compiler. Deze ondersteunt op wat uitzonderingen na volledig C++11.
Onmogelijkhier schreef: 05 apr 2022 10:16 Als het weer lukt want het Arduino taaltje blijft moeilijk tot een raadsel voor mij.
Werk veel met jatten van overal en dan maar kijken wat ik kan samenvoegen en dan kijken of het werkt.
Ik snap niet dat ze het niet iets eenvoudiger hebben gemaakt met eenvoudige If / then enz opdrachten :)
In C++ kun je, zoals veel voorbeelden laten zien redelijk simpel procedureel programmeren, met if..then..else, for loops, etc.
Het wordt een ander verhaal als je echt de diepte ingaat, en Object Oriented gaat programmeren. Voor je alle ins en outs van inheritance, polymorfisme, abstract base classes en meer van dergelijke zaken onder de knie hebt ben je wel enige tijd verder !
Maar voor veel trein-hobbyisten is dit een stap te ver, en bovendien is het programmeren niet hun hobby, maar het laten rijden van de treintjes.
Dus copy-paste en een beetje aanpassen van een voorbeeld is een aardige start. :)

Groet,

Paul