Doel:€250.00
Donaties:€72.00

Per saldo:€-178.00

Steun ons nu!

Laatst bijgewerkt
op 17-04-2019
Algemeen

De stichting

Recente berichten

Raadplaatje door Erik Mijd
Vandaag om 14:48:58
Treinen in oorlogsfilms (en hoe het daar de mist in gaat) door Marc tramt
Vandaag om 14:38:05
Depot + vervolg Vlieringen-2 door Hans Reints
Vandaag om 14:36:14
BNLS-Werkspoor - Bouw KleiNSpoor? NS Beel 2600 door Gerke
Vandaag om 14:27:42
Onlangs gespot - gefotografeerd, de foto's door mass am see
Vandaag om 14:26:28
De Hondsrugbaan, H0 door NS264
Vandaag om 14:26:02
Mijn eerste H0-modeltreinbaan in aanbouw door NS1220
Vandaag om 14:22:57
Documentaire over de verbouwing van de Hoekse Lijn door Jeronimos
Vandaag om 14:15:46
BNLS-module: "Grasland" door St00mboy
Vandaag om 13:59:13
Projekt 083-338 door Hlv53
Vandaag om 13:34:11
BNLS-Module: "Spoormuseum in H0" door nighttrain1
Vandaag om 13:11:31
NS modelbaan Hoekdam H0 door bask185
Vandaag om 12:35:07
NS 8100 in Spoor-1 door FritsT
Vandaag om 12:16:27
Achter de Beel ... door Biesje
Vandaag om 11:26:12
19 Toen door dh3201
Vandaag om 11:20:03
De ‘gewone’ NS sik in spoor 1? door Jamie
Vandaag om 10:57:04
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door iarnrod
Vandaag om 10:09:31
Westlandbaan door Basmans
Vandaag om 10:05:22
DCS52 Zephyr Express - ervaringen? door gvandersel
Vandaag om 09:48:03
Update: baan in de tropen door Hans Grasmaijer
Vandaag om 08:55:42
Modelbouw weekend in het Nederlands Transportmuseum wanneer ? door Bob R.
Vandaag om 08:40:36
Joops Fantasie Wereld in schaal 0e door Harm Boer
Vandaag om 07:25:10
Een stukje Odsherreds Jernbane (OHJ) door tothebeach
Vandaag om 07:23:26
25 jaar geleden door RdJ
Vandaag om 07:22:57
Fleischmann 4471, City pendel. Aansluitschema gezocht. door Erik
Vandaag om 06:12:30
De bouw van mijn modelbaan in Thailand door AndrevdG
Vandaag om 02:36:52
3D/RM: NS waterwagen slijptrein in HDA in N door Bert van Gelder
Vandaag om 00:02:13
Kruising Blauwkapel door Modellbahnwagen
26 mei 2019, 23:35:57
BNLS Forumbaan Rijdag door jakeman
26 mei 2019, 23:04:30
(BNLS modulebaan) Rijdag Lelystad door jakeman
26 mei 2019, 22:25:17
  

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

Ronald Hofmeester

  • Offline Offline
  • Berichten: 588
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 »
Met vriendelijke groet Ronald

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4399
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

Ronald Hofmeester

  • Offline Offline
  • Berichten: 588
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 »
Met vriendelijke groet Ronald

spock

  • Offline Offline
  • Berichten: 238
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: 4399
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

Ronald Hofmeester

  • Offline Offline
  • Berichten: 588
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.

Met vriendelijke groet Ronald

meino

  • Offline Offline
  • Berichten: 422
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

gvandersel

  • HCC!m maar toch Selectrix (RMX)
  • Online Online
  • Berichten: 3350
  • 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.

Ronald Hofmeester

  • Offline Offline
  • Berichten: 588
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 »
Met vriendelijke groet Ronald

Klaas Zondervan

  • Offline Offline
  • Berichten: 16959
    • 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)
  • Online Online
  • Berichten: 3350
  • 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: 4399
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

Ronald Hofmeester

  • Offline Offline
  • Berichten: 588
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.



Met vriendelijke groet Ronald

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4399
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

Ronald Hofmeester

  • Offline Offline
  • Berichten: 588
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.
Met vriendelijke groet Ronald