Doel:€250.00
Donaties:€40.00

Per saldo:€-210.00

Steun ons nu!

Laatst bijgewerkt
op 15-08-2019
Algemeen

De stichting

Recente berichten

Bouw NS 2200 in spoor-0 door Mitchell
Vandaag om 14:45:04
Mijn baan (Erwin) door Chris Westerduin
Vandaag om 14:43:07
Website die leeftijd gebouwen/wijken laat zien door elt-Mhv
Vandaag om 14:22:20
Roco BR23, motor maakt veel geluid na decoderinbouw door Mechiel_
Vandaag om 14:06:13
Projekt 083-338 door Basilicum
Vandaag om 13:35:14
Raadplaatje door Nullem
Vandaag om 13:20:46
BNLS werkspoor NS 8100 van Werps Modelbouw door zuylen
Vandaag om 13:04:20
Fleischman 434x onderdelen, maar waar door Te 2/2
Vandaag om 12:56:38
M.s.v. De Percee bouwt aan nieuwe clubbaan door grove den
Vandaag om 12:47:55
Geisoleerd puntstuk of niet? Ik twijfel. door Harold Content
Vandaag om 12:45:32
Wadloper in model (Fleischmann) door RobertH
Vandaag om 12:28:04
Meer treinen in nieuwe dienstregeling, ook buiten de Randstad door henk
Vandaag om 12:09:28
Digikeijs DR5052 draaischijfmodule door PeterV
Vandaag om 11:58:38
Schwarzburg-Neuffen-Bahn door Ruud K
Vandaag om 11:58:35
Pret met Arduino door RudyB
Vandaag om 11:49:01
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 11:31:50
NS 2264 van het NSM door dh3201
Vandaag om 11:26:37
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 10:31:53
Baan in Los Angeles door Wim Vink
Vandaag om 10:26:28
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Petertrein81
Vandaag om 10:25:13
Stationsplein Baden Baden door Petertrein81
Vandaag om 10:19:27
Onlangs gespot - gefotografeerd, de foto's door Rondje_HO
Vandaag om 10:15:11
Nieuw huis, nieuwe baan door Rondje_HO
Vandaag om 10:11:39
Neutraal Moresnet in H0 door Reinout van Rees
Vandaag om 09:07:06
EifelBurgenBahn door Reinout van Rees
Vandaag om 08:47:09
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door jandejager
Vandaag om 07:39:20
Het Veluws landschap door Harold Content
Vandaag om 07:27:37
Westlandbaan door Tulpendaal
Vandaag om 05:45:03
De bouw van Schellenbach door Hoontje
Vandaag om 02:04:49
(Hoontje's Beursbaan) "Kamp Rijen" door Hoontje
Vandaag om 02:03:00
  

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

Ronald Hofmeester

  • Offline Offline
  • Berichten: 638
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: 4451
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: 638
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: 261
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: 4451
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: 638
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: 458
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: 3368
  • 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: 638
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: 17305
    • 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: 3368
  • 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: 4451
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: 638
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: 4451
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: 638
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