Doel:€250.00
Donaties:€150.00

Per saldo:€-100.00

Steun ons nu!

Laatst bijgewerkt
op 08-12-2019
Algemeen

De stichting

Recente berichten

Piko NS1100, materieelbespreking door Martin Hornis
Vandaag om 22:28:02
Schwarzburg-Neuffen-Bahn door wob
Vandaag om 22:26:54
NCS 7/8 tot NS 61 62 Maffei lok in spoor 0 door FritsT
Vandaag om 22:25:46
Roco NS 200/300 Sik, model 2019 door spoorzeven
Vandaag om 22:18:27
Wensendraadje Nederlands 2020 door becasse
Vandaag om 22:10:13
Very USA: The Slug door NS1220
Vandaag om 21:55:48
Onlangs gespot - gefotografeerd, de foto's door Floris
Vandaag om 21:38:29
Nedstaal; van sloop tot vrije vertaling H0 door NS264
Vandaag om 21:27:47
De CanBus komt naar Kranenberg, Arduino's en de CanBus door Patrick Smout
Vandaag om 21:24:52
Projekt 083-338 door 44
Vandaag om 21:24:12
Nieuwe modelbaan....de start. door NS264
Vandaag om 21:16:50
Geweatherde Challenger, O-schaal, MTH door BartvD
Vandaag om 20:10:51
BMB 00-modulebaan, Algemeen. door Pinkelpa
Vandaag om 20:07:55
Afmetingen tankwagens door mcs51
Vandaag om 20:02:03
Uit en Thuis, de bouw door Klaas Zondervan
Vandaag om 19:39:38
Montage bouwkit Weinert BR 93 door puntenglijder
Vandaag om 19:26:01
Mijn eerste H0-modeltreinbaan in aanbouw door puntenglijder
Vandaag om 19:22:57
De Wim Vink 2020 H0 treinen kalender komt eraan. door Silver Fox 2512
Vandaag om 19:02:21
Westlandbaan door peterha
Vandaag om 18:47:30
Kerstbaantjes of winterbanen.. door Baan Wally
Vandaag om 18:44:07
BMB-Module: “Wateringbury” door St00mboy
Vandaag om 18:40:43
NS modelbaan Hoekdam H0 door Ronald1974
Vandaag om 17:56:16
Peco korte kruising SL-E393F, waar sluit je draden aan? door St00mboy
Vandaag om 17:52:04
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door St00mboy
Vandaag om 17:36:31
SGM; de laatste loodjes. Fotodraadje. door Eric B
Vandaag om 16:10:32
Bouw van baan "Rhineland2". Passagiers en vrachtbedrijf. door NS264
Vandaag om 15:59:31
TCM Opnieuw beginnen met een modelbaan. door FHJ Seller
Vandaag om 15:28:43
Depot + vervolg Vlieringen-2 door Hans Reints
Vandaag om 13:45:53
Mardec WIDO door NS264
Vandaag om 13:09:44
H0 modellen Amerikaanse auto's gezocht door Gerrit F
Vandaag om 13:04:28
  

Auteur Topic: Status van de Arduino zelf naar uitgang zetten?  (gelezen 1855 keer)

Ronald1974

  • Offline Offline
  • Berichten: 774
Status van de Arduino zelf naar uitgang zetten?
« Gepost op: 15 mei 2019, 16:20:01 »
Ik wil op mijn untility paneel een led laten branden zodat ik kan zien dat de Arduino goed functioneert.
Een klein beetje vergelijkbaar met een PLC waar het run lampje brand.

Het gaat dus om de status dat de Arduino goed functioneert, niet zo zeer de code (programma).
Is daar een stukje code voor beschikbaar welke dit mogelijk maakt.
« Laatst bewerkt op: 16 mei 2019, 17:47:36 door Bert van Gelder »

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4541
Re: Status van de Arduino zelf naar uitgang zetten ?
« Reactie #1 Gepost op: 15 mei 2019, 16:42:47 »
Dan kan je toch gewoon een ledje aan een pin hangen en deze in setup() HIGH maken?


Timo
Verzonden vanaf mijn desktop met Firefox

Ronald1974

  • Offline Offline
  • Berichten: 774
Re: Status van de Arduino zelf naar uitgang zetten ?
« Reactie #2 Gepost op: 15 mei 2019, 17:51:47 »
Timo,

Dat begrijp ik zelf ook wel dat je een pin hoog kan maken in de setup.
Kan ook de bestaande code uitbreiden met een stukje code welke de code vergelijkt/controleert en als deze goed is de uitgang hoog maakt.
Zo zijn er nog wel meer mogelijk heden.

Het gaat dus om de status dat de Arduino goed functioneert

Wil dus weten dat de hardware van de Arduino goed werkt.
En dit vertalen naar een uitgang.
Ga er vanuit dat als de Arduino is op gestart dat er intern een bit, byte of wat dan ook aanwezig is welke het uitvoeren van de code start.

Ben gewend dat je dit soort statussen uit een PLC of DCS systeem kan halen.

Een optie zou zijn als de arduino is gestart gaat de millis () teller lopen.
Een stukje code wat bijvoorbeeld om de minuut kijkt of deze teller 60000 miliseconden er bij heeft geteld.
Zolang dat gebeurd blijft de uitgang hoog.

Misschien is er iemand die weet hoe je (systeem) statussen kan verwerken in de code om een uitgang te sturen.

Welke adderss en welke bit van de ATmega328p moet ik hebben.
Kan het niet zo snel vinden in de datasheet.

« Laatst bewerkt op: 15 mei 2019, 18:31:46 door Ronald Hofmeester »

spock

  • Offline Offline
  • Berichten: 270
Re: Status van de Arduino zelf naar uitgang zetten ?
« Reactie #3 Gepost op: 15 mei 2019, 20:57:34 »
Hoi Ronald,

Ik vertaal de vraag "Wil dus weten dat de hardware van de Arduino goed werkt" naar "wil weten dat de Arduino niet is gecrashed (eg de  functie loop() wordt niet meer uitgevoerd".

Kijk hiervoor eens naar de voorbeelden van watchdog functionaliteit.

bv: https://forum.arduino.cc/index.php?topic=63651.0

Met een paar kleine aanpassingen kun je het daarmee maken

mvg spock




Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4541
Re: Status van de Arduino zelf naar uitgang zetten ?
« Reactie #4 Gepost op: 15 mei 2019, 23:06:47 »
Eigenlijk in het kort, nee dat kan niet. Niet zonder extra hardware.

Waarom ik met gewoon een pin hoog maken kwam is dat eigenlijk de enige check van de hardware is die je kunt doen (misschien samen met de brown out zo hoog mogelijk zetten). Immers betekend dat de voedingsspanning in orde is en de uC al best een waslijst aan taken heeft weten uit te voeren. Misschien nog Vcc inlezen maar dan houdt het ook wel op.

Extern zou je qua hardware nog kunnen kijken of de clock nog tick (dmv clock out aan te zetten).

Ophogen van millis() controleren is ook onzin. Er zit maar één processor in de Arduino (meeste dan) en zolang die überhaupt millis() weet uit te lezen zal millis zelf ook wel werken  ;D tenzij je interrupts voor lange tijd uit hebt gezet.

Watchdog zegt voor 99% ook niets over de hardware maar over de software. Maar aan de andere kant begin ik het idee te krijgen dat het toch de software is waar je bang voor bent. Goed, een normale Arduino is geen space grade chip of heeft geen fail safe, maar de kans dat de hardware zomaar stuk gaat (afgezien van de hele chip of uitgang op te blazen met ESD ofzo) is erg klein. Zou eerder inzetten op de jackpot winnen dan dat.

Dus ja, je kunt de watchdog gebruiken maar dat zal in 99,9% van de gevallen een programmeerfout van jou kant aangeven. En watchdog heeft eigenlijk ook alleen nut als je ook bijhoudt wanneer / hoe vaak deze heeft ingegrepen zodat je onderzoek kunt doen waar je probleem zit.

Een PLC heeft meerdere processors die (al naar gelang type en merk) bijvoorbeeld ook de uitgangen controleren (en eventueel overnemen), checksums doen op het geheugen en watchdogs om te kijken of de boel niet gecrashed is. Maar dat is eigenlijk higher level en dus op basis van meerdere processors. De atmega328 is maar een enkele. Dus nee, daar zijn geen status bitjes voor.

Maar goed, dan als wedervraag, waar ben je bang voor?


Timo
Verzonden vanaf mijn desktop met Firefox

Ronald1974

  • Offline Offline
  • Berichten: 774
Re: Status van de Arduino zelf naar uitgang zetten ?
« Reactie #5 Gepost op: 16 mei 2019, 14:02:18 »
Hallo Timo,
Je vroeg het volgende.
Maar goed, dan als wedervraag, waar ben je bang voor?

Ik ben nergens bang voor, heb tot nu toe nog geen vast gelopen Arduino gehad.
Voor de modelspoorbaan maakt het niet veel uit of het ledje wat op het paneel brand tot stand is gekomen door een stukje code of juist de functie uit de ATmega328p wat blijkbaar niet aanwezig is.

Ben zelf zeer verrast wat je allemaal met een Arduino kan doen.
Mede door de vele libraries die beschikbaar zijn.

Er is een ON, RX, TX en een L (pin13) led onboard aanwezig maar geen LED code running/status oke.

Ga nu eerst even na denken wat ik ga doen, simpel weg bij de opstart (setup) de uitgang hoog maken.
Of een stukje code toevoegen of er geen foutieve bediening zijn (op het paneel) dan blijft de controle lamp (led) branden of ander gaat de led uit.
Dat is dan weer te volgen in het draadje Hoekdam.


meino

  • Offline Offline
  • Berichten: 574
Re: Status van de Arduino zelf naar uitgang zetten ?
« Reactie #6 Gepost op: 16 mei 2019, 16:24:16 »
Ronald

je zou ook in de loop functie een ledje periodiek aan en uit kunnen zetten. Zolang het dan knippert weet je dat de loop functie in ieder geval nog steeds wordt aangeroepen en doorlopen.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg

gvandersel

  • HCC!m maar toch Selectrix (RMX)
  • Offline Offline
  • Berichten: 3428
  • Als het maar elektrisch is.
    • Homepage Gerard van der Sel
Re: Status van de Arduino zelf naar uitgang zetten?
« Reactie #7 Gepost op: 20 mei 2019, 15:18:31 »
Ik zou inderdaad doen wat Meino aanbeveelt. Laat een LED door de loop functie knipperen. Dit geeft een betere "bewaking" dan aan of uit. Want wat als toevallig je uitgang door een defect naar GND gaat en je LED dus blijft branden en de Arduino op hol slaat.

In een paranoide bui zou ik vermoedelijk brown-out en watchdog activeren en deze pen 13 (LED-BUILTIN) laten knipperen. Maar zoals gezegd in een paranoide bui. Er draaien verscheidene echte arduino's en een een groot aantal AVR'n (familie naam van de ATmega328) onder de baan hun werkzaamheden. Mochten ze ooit niet meer doen wat ze moeten doen gaat het op de baan mis en zal ik onder de baan duiken om naar de boosdoener te kijken.

Voorlopig leg ik deze verantwoordelijke taak bij mezelf al gedurende enige 10 tallen jaren tot volle tevredenheid.

Mijn advies is verspil je tijd en de pennen niet aan deze voorziening, want het is de moeite niet waard.

Groet,

Gerard van der Sel.

PS: met LPM kan je door je programma geheugen heen stappen en een CRC checksum maken. Hiermee kan je je programma zelf controleren. Hoe je de fout moet melden laat ik aan je eigen fantasie over, want wie zegt dat dat nog gebeurt bij een fout (Lees betoog van Timo maar goed).
Holzburg (IIIb/IVa) schaal N.
Kijk ook eens bij de bouw en lees de avonturen.

Ronald1974

  • Offline Offline
  • Berichten: 774
Re: Status van de Arduino zelf naar uitgang zetten?
« Reactie #8 Gepost op: 20 mei 2019, 19:41:12 »
Gerard,

Donderdag avond kreeg ik een idee, vrijdag even tijd vrij gemaakt en een klein stukje code aangevuld en ik heb een status melding.
In kort 7 schakelaars van het bedieningspaneel aangesloten op de arduino.
De arduino verzorgt de logica (vergelijking) voor de aansturing van vier armseinen (servo's).
Hierbij worden er vier bitjes gegenereerd, een vijfde bitje heb ik extra aan gemaakt deze vergelijkt of alle schakelaars in rust positie staan.
Als 1 van deze bitjes hoog is dan is de uitgang hoog status oke, ik heb 5 seconden de tijd om de schakelaars te bedienen in de goede stand zetten.
Gebeurt dit niet dan is er een bedienings fout en wordt de uitgang laag.
Op deze manier heb ik een simpele status melding met fout melding.
« Laatst bewerkt op: 20 mei 2019, 19:43:55 door Ronald Hofmeester »

Klaas Zondervan

  • Offline Offline
  • Berichten: 17809
    • Pagina van klaas
Re: Status van de Arduino zelf naar uitgang zetten?
« Reactie #9 Gepost op: 20 mei 2019, 20:07:05 »
Je kunt ook een echte watchdog maken. Als ik me niet vergis is dat een hardware timer die een led aan zet. Als de timer afloopt gaat de led uit. In je Arduino creëer je een uitgang die periodiek de timer een schop geeft zodat de led blijft branden.
Spoorbaan "Uit en Thuis" in aanbouw.

gvandersel

  • HCC!m maar toch Selectrix (RMX)
  • Offline Offline
  • Berichten: 3428
  • Als het maar elektrisch is.
    • Homepage Gerard van der Sel
Re: Status van de Arduino zelf naar uitgang zetten?
« Reactie #10 Gepost op: 20 mei 2019, 20:21:49 »
@Ronald: Dat is niet wat ik begreep. Je controleert zo een beperkt deel van de functionaliteit. Als voor jou voldoende dan toepassen.

@Klaas: Watchdog is een speciale timers die programmatisch gereset word. Gebeurt dat niet op tijd, dan wordt de hele Arduino gereset. Er gaat dus geen hardware functionaliteit verloren.

Groet,

Gerard van der Sel.
Holzburg (IIIb/IVa) schaal N.
Kijk ook eens bij de bouw en lees de avonturen.

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4541
Re: Status van de Arduino zelf naar uitgang zetten?
« Reactie #11 Gepost op: 20 mei 2019, 20:27:21 »
@Ronald Hofmeester, daarmee controleer je toch alleen maar jezelf? Of jij de schakelaars goed zet? Of zie ik dat verkeerd? ???

Watchdog kan je volgens mij niet direct aan een pin koppelen. Maar je kan er wel een ISR mee triggeren (mits deze aan staan) of voor een chip reset zorgen en tijdens boot checken of dat door een watchdog reset kwam. Maar goed, daarmee controleer je dus vooral je geschreven code, niet de werking van de chip op hardware niveau.


Timo
Verzonden vanaf mijn desktop met Firefox

Ronald1974

  • Offline Offline
  • Berichten: 774
Re: Status van de Arduino zelf naar uitgang zetten?
« Reactie #12 Gepost op: 20 mei 2019, 20:45:19 »
Heren,

Er is vanuit de hardware (chip) geen status van de chip beschikbaar welke visuele zijn of visuele gemaakt kunnen worden.

Ik controleer nu de werking van de software totaal 56 variabele.
Nee het is eigenlijk niet wat ik wilde, maar nu ik het gemaakt hebt en het werkt ben ik er blij mee.




Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4541
Re: Status van de Arduino zelf naar uitgang zetten?
« Reactie #13 Gepost op: 20 mei 2019, 22:06:48 »
Hoi Ronald,

Dat je er blij mee bent is natuurlijk het belangrijkste (y) Mijn bericht was ook niet als commentaar bedoelt. Maar echt als serieuze vraag wat je nu werkelijk controleert. Dat is me namelijk niet duidelijk. ???


Timo
Verzonden vanaf mijn desktop met Firefox

Ronald1974

  • Offline Offline
  • Berichten: 774
Re: Status van de Arduino zelf naar uitgang zetten?
« Reactie #14 Gepost op: 21 mei 2019, 19:49:05 »
Hoi Timo,

Als ik het heel simpel redeneer als de code het programma goed werkt dan zal er niks aan de hand zijn met de Arduino.
Er is een ON, RX, TX en een L (pin13) led onboard aanwezig maar geen LED code running/status oke.
Het zou fijn zijn als zo iets aanwezig zou zijn.

@Ronald Hofmeester, daarmee controleer je toch alleen maar jezelf? Of jij de schakelaars goed zet? Of zie ik dat verkeerd?

Ik kijk onder andere naar de schakelaar standen, maar ook naar alle interlock's en voorwaarde en logica vergelijkingen.
Kijk naar wisselstand, rijweg en kan vervolgens het sein bedienen.
Als het sein is bediend treed er weer andere interlock's in werking.

Als alles goed werkt brand het status lampje bij fout of bedienings fout gaat na 5 seconden het lampje uit.
Bij het bedienen van de schakelaars heb je vijf seconden de tijd om dit te doen.