arduino uno reset met RTC klok??

Arduino specifieke Software
Berichten: 10
Geregistreerd: 26 Apr 2015, 19:22

arduino uno reset met RTC klok??

Berichtdoor Otto » 14 Apr 2016, 08:10

Korte vraag: kan ik een Arduino UNO rev3 1x per dag -op een vaste tijd- resetten met een van de Alarmen van een DS3231 RTC??

Lange uitleg:
op zoek naar een sturing van een solar tracker voor zonnepanelen ben ik bij een Arduino Uno uitgekomen.
dus dit is mijn eerste project, maar ik ben er al wel een tijdje mee bezig....

De tracker (4x2m) (inmiddels gebouwd, foto bijlage) kan 90 graden oost-west draaien, dus 6 uur per dag, van 09:40 tot 15:40.
en om 5 uur 's morgens draait ie in 1 keer weer terug naar het oosten

Het verstellen van de zonnepanelen gaat met Superjack QARL 3636 actuator (oost-west) en de QARL3624 (hoog/laag)
deze zijn voorzien van een reedcontact als stappenteller voor meting van de verstelling.
en zijn voorzien van een interne eindschakelaar voor max in en max uit.

Aansturing met een Arduino UNO rev 3, met DS3231 RTC en een 4 relais bordje, en en 20x4 lcd display
2 digitale ingangen voor de reedcontacten, 4 digitale uitgangen voor de relais.
DS3231RTC en 20x4 LCD via I2c aangesloten.

Bij insteken van de stekkervoeding start de arduino, leest datum en tijd uit, berekend de juiste stand van de actuators en zoekt deze op.
Het programma is nu zo dat alles verder door de RTC klok aangestuurd wordt, ik heb geen enkele toest of knop, alleen de resetknop op het bordje.

Het systeem draait automatisch vanaf 1 maart, en eigenlijk goed, maar

Afgelopen week met de harde wind is de motor blijkbaar iets langzamer geremd, waardoor de tracker om 15:35 aan de (actuator) eindstand is gekomen
de arduino blijft dan wachten in de tellerloop die niet aan de juiste stand komt en "hangt"
Dus de volgende ochtend even de stekker eruit en er weer in en alles is weer OK, maar ik wil in principe niet elke ochtend controleren.

Nu kan ik wel een aantal oplossingen bedenken om dit probleem te omzeilen, oa de eindschakelaar met een ingang uitlezen.

maar ik loop als alternatief te denken of het mogelijk is 's ochtends om 5 uur de Arduino softwarematig te resetten door een Alarm van de RTC
dat de tracker ''s middags om half 4 in de west-positie "hangt" is niet fraai maar functioneel geen probleem: het is de juiste stand voor de rest van de dag.

Maar eigenlijk is heel de uitleg niet nodig, de vraag blijft algemeen:
kan ik met een Alarm van een RTC de arduino Uno op een vaste tijd automatisch resetten, ongeacht of de Arduino in een loop zit of niet??

(dat gedoe met die bijlagen is een heel werk, een A4 fritzing schema gaat niet, wordt onleesbaar klein binnen de opgegeven bestandsgrootte....)
Bijlagen
DSCF0018AF2.JPG
DSCF0018AF2.JPG (91.09 KiB) 8752 keer bekeken
DSCF0014AF2.JPG
DSCF0014AF2.JPG (109.03 KiB) 8752 keer bekeken
DSCF0025AF2.JPG
DSCF0025AF2.JPG (122.73 KiB) 8752 keer bekeken

Advertisement

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: arduino uno reset met RTC klok??

Berichtdoor shooter » 14 Apr 2016, 09:32

Ja dat kan zeker met de alarmuitgang naar de resetingang, maar dat is niet de juiste oplossing natuurlijk.
je programma moet altijd lopen en niet hangen als er iets niet gebeurd. dat zul je in software moeten afvangen, bijv. als verstellersensor niet meer werkt, dan moet er eigenlijk een alarm komen. want dan klemt er iets of is er geen spanning op de motoren oid.
bij terugloop laten lopen tot sensor niets meer pulst. bij heenloop is het best moeilijk beter is een encoder (ofwel 2 reedswitches op de as).
denk je aan debouncen van die reedswitch.
en 5 minuten op 6 uur is 1/72 en zo precies kun je met relais toch niet schakelen. je moet dus alle pulsen tellen ook als relais niet aan staat.
paul deelen
shooter@home.nl

Berichten: 10
Geregistreerd: 26 Apr 2015, 19:22

Re: arduino uno reset met RTC klok??

Berichtdoor Otto » 15 Apr 2016, 07:56

is het zo eenvoudig?? dat ik dat zelf niet bedacht heb!!

bedankt voor de snelle reactie!

een verduidelijking op het verhaal van gisteren:
tussen 9:40 en 15:35 wordt elke 5 minuten het relais ingeschakeld en na 12 pulsen van het reedrelais weer uitgeschakeld, om zo de panelen met de zon mee te draaien
dat is 71x per dag 12 pulsen is 852 pulsen per dag. Met de harde wind bleef het programma op 15:30 'hangen' omdat de ingebouwde eindschakelaar eerder bereikt was dan het aantal pulsen geteld is...

en ja, ik moet toegeven: het is programmatechnisch geen nette oplossing.
maar wel een eenvoudig "noodverband".

een betere meting van de hoek is een meer solide oplossing, maar ik op dit moment geen tijd voor groter aanpassingen\
en ik wil ook de mechanische constructie enige tijd afkijken of er zich problemen gaan voordoen.
de motoren zijn 36V en worden gevoed door 3 accu's in serie, ook daar wil ik de spanning van meten,
ook de stroom tijdens het verstellen, zodat een te grote (wind) belasting gedetecteerd wordt
en evt een windmeter erbij zodat een "stormpositie' ingesteld kan worden...
maar liefst wil ik deze zomer er niets aan doen, alleen 'noodverbanden'

het huidige programma (v1.0) is echt de basis om te leren of het principe werkt.


pas komende winter wil ik een complete update maken (ook mechanisch) met meer toeters en bellen.

nogmaals, bedankt!

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: arduino uno reset met RTC klok??

Berichtdoor shooter » 15 Apr 2016, 18:06

die hoekfout is minimaal dus lekker laten zitten zo.
alleen met terugdraaien dus niet 852 pulsen maar 870 pulsen (dan loopt de motor altijd tegen de eindschakelaar aan. maar dan na 5 minuten of zo gewoon verder gaan met programma.
paul deelen
shooter@home.nl

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: arduino uno reset met RTC klok??

Berichtdoor shooter » 16 Apr 2016, 09:57

je zult dus een soort timer in moeten bouwen voor het geval er iets vastloopt.
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: arduino uno reset met RTC klok??

Berichtdoor nicoverduin » 16 Apr 2016, 10:20

Ik zou zelf die stekkertjes vervangen voor schroefterminals. Nu is het allemaal nog vrij gammel.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 11
Geregistreerd: 24 Mei 2016, 11:59

Re: arduino uno reset met RTC klok??

Berichtdoor Looneyt » 24 Mei 2016, 12:36

In mijn andere project (die nog niet op het forum staat) maak ik gebruik van de alarm pin op een DS3231SN die een mosfet stuurt om bij het activeren van het alarm, de arduino aan te zetten. Alss het programma is doorlopen, reset de arduino zelf dit alarmregister van de RTC en gaat dan uit. Wellicht is dat een mogelijkheid om zo de arduino te resetten?

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: arduino uno reset met RTC klok??

Berichtdoor nicoverduin » 24 Mei 2016, 13:27

Looneyt schreef:In mijn andere project (die nog niet op het forum staat) maak ik gebruik van de alarm pin op een DS3231SN die een mosfet stuurt om bij het activeren van het alarm, de arduino aan te zetten. Alss het programma is doorlopen, reset de arduino zelf dit alarmregister van de RTC en gaat dan uit. Wellicht is dat een mogelijkheid om zo de arduino te resetten?
Mooie slimme oplossing.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 7
Geregistreerd: 01 Dec 2015, 14:11

Re: arduino uno reset met RTC klok??

Berichtdoor Roelf » 25 Mei 2016, 07:56

Arduino resetten vanuit code kan ook met de watchdog

cpp code
#include <avr/wdt.h>

void softwareReset( uint8_t waitTime) {
// start watchdog
wdt_enable( waitTime);
// wacht gedurende de waitTime
while(1) {}
}

void setup() {
wdt_reset();

// rest van setup
}

void loop() {
// jouw code

// restart in 60 milliseconden
softwareReset( WDTO_60MS);
}

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: arduino uno reset met RTC klok??

Berichtdoor nicoverduin » 25 Mei 2016, 08:39

Klopt maar de gekozen oplossing van de TS is mooi omdat je de maximale stroombesparing kan realiseren. De Arduino kan in deep sleep en doet letterlijk zo goed als niets. De RTC blijft toch lopen vanwege de batterij. als je een WDT timer gebruikt si er altijd meer energie verbruik. En als je richting oplossingen wil die jaren kunnen doorlopen op een paar batterijen is elke uA er een.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 97 gasten