Go Down

Topic: Lehrmeister für meine Codeprobleme gesucht  (Read 4349 times) previous topic - next topic

Tommy56

Da würde ich Dir empfehlen immer die gleiche Zeitzone zu benutzen. Also entweder alles in Winterzeit oder gleich in UTC.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

postmaster-ino

Hi

Ich denke nicht, daß der Stepper die Module direkt drehen kann - etwas Getriebe wirst DU Da wohl noch benötigen (ggf. eine Kette, kleines Ritzel auf Stepper, großes Ritzel am Gestell.

Als Zeit würde ich 'Winterzeit' (= eben Normalzeit) nehmen oder wie Tommy schrieb, UTC.
Wenn der Arduino via RTC die Zeit mithält, sollten sich die nächsten Jahre keine größeren Beanstandungen in der Ausrichtung ergeben.

Die Sonne geht ja im Sommer nicht zu einer anderen Zeit auf, nur weil WIR die Uhr irgendwo hin gestellt haben.
Mit der ganzen Zeitumstellerei hat der Arduino überhaupt Nichts 'am Hut' - für Ihn beginnt um 6:00 (Winterzeit) der Tag und um 18:00 (Winterzeit) sind die 180° fertig.

MfG

agmue

Also bedeutet das wenn wir mit den 720min rechnen das jede 7,2min der Motor ein schritt machen muss.
Ein unbestromter Schrittmotor hat kein Haltemoment, Du brauchst eine "Bremse". Ein selbsthaltendes Getriebe könnte eine Lösung sein. Mein Gefühl tendiert daher eher zu einem 12V Getriebemotor (mit Schnecke) und Drehgeber.

Ok, nur Zweiter.

michael_x

Quote
Die Sonne geht ja im Sommer nicht zu einer anderen Zeit auf, nur weil WIR die Uhr irgendwo hin gestellt haben.
Mit der ganzen Zeitumstellerei hat der Arduino überhaupt Nichts 'am Hut' - für Ihn beginnt um 6:00 (Winterzeit) der Tag und um 18:00 (Winterzeit) sind die 180° fertig.
Im Prinzip richtig. Gilt aber strenggenommen für 15° Ost . Wessis (z.B. 9° E) sehen die Sonne im Süden um 12:24 CET

stahl999

#19
Jun 02, 2018, 09:46 am Last Edit: Jun 02, 2018, 10:20 am by stahl999
(Ich hoffe Links schicken ist in diesem Forum erlaubt wenn nicht Lösch ich sie natürlich Sofort.)

Ich hab mich mal nach Getriebemotor umgeschaut und bin auf diesen hier gestoßen wäre der Praktikabel?

https://www.conrad.de/de/getriebemotor-12-vdc-mfa-950d30001-30001-222376.html



Als Encoder hab ich vlt an sowas hier gedacht oder habt ihr mir da was besseres?

https://eckstein-shop.de/Pololu-Optical-Encoder-Pair-Kit-for-Micro-Metal-Gearmotors-5V?curr=EUR&gclid=Cj0KCQjwgMnYBRDRARIsANC2dflg28JI2aAqgWCkq2v7V29i6GMsHzSrxFiETWxX-VhUcirFDWOqEEYaAkGqEALw_wcB


Moko

(Ich hoffe Links schicken ist in diesem Forum erlaubt wenn nicht Lösch ich sie natürlich Sofort.)
Links sind kein Problem, allerdings sind das, was Du gepostet hast, keine Links.
Hier nochmal für die mobilen Nutzer, anklickbar:

Getriebemotor

Encoder

stahl999

#21
Jun 02, 2018, 01:24 pm Last Edit: Jun 02, 2018, 01:51 pm by stahl999
Hi

Ich hab jzt mal wie postmaster-ino gesagt hat die ganzen sachen die bis jzt funktionieren ausgelagert.

Wie muss ich jzt weiter machen?

Hi

An einer Nachführung hätte ich aber auch noch Spaß - meine vier Zellen stehen recht genau nach Süd, bekommen aber erst ab 11 Sonne (... das störende Haus ist's Eigene - wird also wohl weiter stören), weshalb mir die späte Sonne interessant wäre.

Zu Deinem Sketch:
- packe die Einzelteile in separate Funktionen, damit reduziert sich Dein loop() auf 'Regen', 'Wind', 'Sonne nachführen'.
- in den Unterfunktionen entscheidest Du, ob Handlungsbedarf besteht - wenn nicht, direkt wieder raus
- in den Unterfunktionen baust Du Dir einen Merker, was die Funktion zuletzt gemacht hat - so kann dann
-- windstatus==1 -> setze Startzeit, windstatus++;
-- windstatus==2 -> Wartezeit vorbei? Nein -> direkt wieder raus, sonst windstatus++
-- .... also eine State-Maschine (von Status zu Status springen nach Bedingungen) pro Unter-Funktion

Bei Regen würde ich Nichts machen - je kälter das Modul ist, desto besser läuft Es.
Auch kann so ein Solar-Modul eine ganze Menge aus - hatte Mal einen Bericht auf N24 (??) gesehen, wo *glaub* ein rundes Bleigewicht mit 1m Auslage auf 90° (waagerecht) gezogen wurde um dann auf das senkrecht stehende Modul fallen zu lassen (das Gewicht schwingt an dem Pendel die 90° zum Modul, deformiert Das um einige cm und Alles 'dotzt zurück' - die Zeitlupenaufnahme sah echt unheimlich aus!!)
Viel mehr Gedanken würde ich mir darum machen, daß der Tracker samt Modul nicht vom Wind weggetragen wird.

Eine Beschattung plane ich bei der Thermischen ein ... aber Das ist eine ganz andere Baustelle ...

MfG
Also wie postmaster-ino schon erwähnt hat wie entscheide ich ob Handlungsbedarf besteht und wenn nein, wie komme ich direkt wieder raus?

MfG

Code: [Select]



//---Servo---
#include <Servo.h>
 
Servo myservo;
 
int angle = 90;


//---Wind---
int wind_ct = 0;
float wind = 0.0;
unsigned long time = 0;



void setup()//-----------------------------------------------------------------------------------------
{
  Serial.begin(9600);
  time = millis();

 //---Servo---
  pinMode(3, OUTPUT);
myservo.attach(44);

}



void loop()//-----------------------------------------------------------------------------------------
{
 
  windMessung();
  printIn();
  servo();

}
 



//-----------------------------------------------------------------------------------------
void countWind() {
  wind_ct ++;
}
//------------------------------------------------------
void windMessung() {
  const int m_time = 3;   
  wind_ct = 0;
  time = millis();
  attachInterrupt(1, countWind, RISING);
  detachInterrupt(1);
  wind = (float)wind_ct / (float)m_time * 2.4;
}
//------------------------------------------------------
void servo(){
int rightEye = analogRead(4);
int leftEye = analogRead(5);
int diff = (rightEye - leftEye);
if (diff > 30) {
angle = angle+2;
}
if (diff < -30) {
angle = angle-2;
}
if (angle > 200) {
angle = 200;
}
if (angle < 2) {
angle = 2;
}
myservo.write(angle);
 
  }
//------------------------------------------------------
  void printIn() {
  Serial.print(wind);       
  Serial.print(" km/h ");
 
  }

stahl999

#22
Jun 02, 2018, 01:39 pm Last Edit: Jun 02, 2018, 01:44 pm by stahl999
Oh und gibt es eig. keine andere möglichkeit einem DC-Motor zusagen wie lange/wie viel er sich Drehen soll als über die Zeit oder einem Encoder?


z.bsp keine Ahnung vlt step.vorward +1 also das er halt wie ein Schrittmotor ein kleinen schritt macht, oder so in der art halt wenn ihr versteht was ich meine.

Ich habe noch ein Arduino-Motorshield von einem früheren Projekt rumliegen konnte mir das etwas nützen?

agmue

Das von Dir verlinkte Motörchen ist bestimmt nett für den Modellbau. Wie groß ist denn das Solarmodul? Hast Du schon mal die auftretenden Drehmomente berechnet?

Mein Gefühl tendiert zu deutlich kräftigeren Schrittmotoren oder Gleichstrommotoren oder Scheibenwischermotoren.

Du benötigst ein selbsthemmendes Getriebe.

postmaster-ino

Hi

Mein erster Gedanke beim Motor war auch: Scheibenwischer-Motor
Sehr stark, trotzdem dreht die Welle noch schnell, daß man damit 'was anfangen kann' - eben z.B. eine Untersetzung per Fahrrad-Kette.
Um einen Encoder wirst Du bei einem normalem Motor nicht drum herum kommen - der Ansatz, Das über die Zeit regeln zu wollen, wird nicht funktionieren - alleine schon, weil der Motor stark spannungsabhängig an Kraft/Drehzahl verliert.

Akut sieht der Sketch so aus, daß Du die Module mit einem Servo verstellen willst.
Könnte man auch machen - man könnte dafür sogar ein 08/15-Servo 'hacken' (endlos drehend) und das Poti durch ein Externes ersetzen - dann dreh das Servo, bis das externe Poti den Endwinkel wiederspiegelt.
Wird aber wohl nicht lange halten:
- das Servo ist nicht für den Dauerbetrieb ausgelegt
- Du musst extrem stark untersetzen - die meisten  Servos sind eher schwach auf der Brust
-- ob Du dann mit der Drehgeschwindigkeit noch hinterher kommst?

Mit einem DC-Motor startest Du quasi 'nur' in eine der Drehrichtungen und prüfst, ob Du noch weiter fahren musst.
Dazu ein Encoder (kann auch ein Micro-Taster sein, Der die Zähne eines langsam drehenden Zahnrad 'abtastet'), Der die 'Schritte' zählt - je nach Drehrichtung rauf oder runter.
Wenn Du an Deinem Ziel-Schritt angekommen bist, Motor aus.

In der Nacht drehst Du die 180° zurück und wartest auf den nächsten Tag.

MfG

stahl999

#25
Jun 02, 2018, 10:00 pm Last Edit: Jun 02, 2018, 10:01 pm by stahl999
Hi

Mein erster Gedanke beim Motor war auch: Scheibenwischer-Motor
Sehr stark, trotzdem dreht die Welle noch schnell, daß man damit 'was anfangen kann' - eben z.B. eine Untersetzung per Fahrrad-Kette.
Um einen Encoder wirst Du bei einem normalem Motor nicht drum herum kommen - der Ansatz, Das über die Zeit regeln zu wollen, wird nicht funktionieren - alleine schon, weil der Motor stark spannungsabhängig an Kraft/Drehzahl verliert.

Akut sieht der Sketch so aus, daß Du die Module mit einem Servo verstellen willst.
Könnte man auch machen - man könnte dafür sogar ein 08/15-Servo 'hacken' (endlos drehend) und das Poti durch ein Externes ersetzen - dann dreh das Servo, bis das externe Poti den Endwinkel wiederspiegelt.
Wird aber wohl nicht lange halten:
- das Servo ist nicht für den Dauerbetrieb ausgelegt
- Du musst extrem stark untersetzen - die meisten  Servos sind eher schwach auf der Brust
-- ob Du dann mit der Drehgeschwindigkeit noch hinterher kommst?

Mit einem DC-Motor startest Du quasi 'nur' in eine der Drehrichtungen und prüfst, ob Du noch weiter fahren musst.
Dazu ein Encoder (kann auch ein Micro-Taster sein, Der die Zähne eines langsam drehenden Zahnrad 'abtastet'), Der die 'Schritte' zählt - je nach Drehrichtung rauf oder runter.
Wenn Du an Deinem Ziel-Schritt angekommen bist, Motor aus.

In der Nacht drehst Du die 180° zurück und wartest auf den nächsten Tag.

MfG

Den Servo teil sollte man noch nicht zu ernst nehmen. Ich hab ihn nur in so eingegliedert um mit andern Sachen fortzuführen wie z.bsp. den klappen teil, zudem habe ich noch keine Motor + Encoder somit hab ich das jzt mal "vernachlässigt".

stahl999

#26
Jun 02, 2018, 10:10 pm Last Edit: Jun 02, 2018, 10:22 pm by stahl999
Das von Dir verlinkte Motörchen ist bestimmt nett für den Modellbau. Wie groß ist denn das Solarmodul? Hast Du schon mal die auftretenden Drehmomente berechnet?

Mein Gefühl tendiert zu deutlich kräftigeren Schrittmotoren oder Gleichstrommotoren oder Scheibenwischermotoren.

Du benötigst ein selbsthemmendes Getriebe.

Ich verwende ein Kugellager deswegen dachte ich eig. das 60 Ncm ausreichen, die ist zeihmlich leicht und wiegt Solarzelle nur 350g.

Aber ich hab nicht all zuviel Ahnung also wenn ihr meint das ein Scheibenwischermotor deutlich geeigneter wäre schau ich mich mal danach um.

Edit: Zudem ist der große vorteil das dieser Motor nur 12V braucht was mit dem Motor shield noch abdeckbar ist.

postmaster-ino

Hi

Aso - hatte jetzt an 'Solar-Zellen' gedacht ;)
Meine wiegen 17kg das Stück + Unter-Konstruktion.
Auch ist  bei Dir Wind dann ein eher untergeordnetes Thema ;)

Nicht falsch verstehen, bei Dir aber eher 'Spielzeug' um das Handy zu laden?
(was der Sache ja nicht schadet - auch Da soll Strom raus kommen und die Technik hinter dem Tracker ist die Gleiche)

MfG

stahl999

#28
Jun 02, 2018, 10:18 pm Last Edit: Jun 02, 2018, 10:26 pm by stahl999
Hi

Aso - hatte jetzt an 'Solar-Zellen' gedacht ;)
Meine wiegen 17kg das Stück + Unter-Konstruktion.
Auch ist  bei Dir Wind dann ein eher untergeordnetes Thema ;)

Nicht falsch verstehen, bei Dir aber eher 'Spielzeug' um das Handy zu laden?
(was der Sache ja nicht schadet - auch Da soll Strom raus kommen und die Technik hinter dem Tracker ist die Gleiche)

MfG
Ja sie ist primer für unsere Handys + Tablets + Laptops gedacht. Also meines Erachtens ist sie jzt nich sooooo klein:

Größe und/oder Gewicht: 42 x 28 x 0,2 cm sie ist extrem dünn aber trotzdem noch mit 18W verhältnis mäßig leistungsstark.

stahl999

Hi

An einer Nachführung hätte ich aber auch noch Spaß - meine vier Zellen stehen recht genau nach Süd, bekommen aber erst ab 11 Sonne (... das störende Haus ist's Eigene - wird also wohl weiter stören), weshalb mir die späte Sonne interessant wäre.

Zu Deinem Sketch:
- packe die Einzelteile in separate Funktionen, damit reduziert sich Dein loop() auf 'Regen', 'Wind', 'Sonne nachführen'.
- in den Unterfunktionen entscheidest Du, ob Handlungsbedarf besteht - wenn nicht, direkt wieder raus
- in den Unterfunktionen baust Du Dir einen Merker, was die Funktion zuletzt gemacht hat - so kann dann
-- windstatus==1 -> setze Startzeit, windstatus++;
-- windstatus==2 -> Wartezeit vorbei? Nein -> direkt wieder raus, sonst windstatus++
-- .... also eine State-Maschine (von Status zu Status springen nach Bedingungen) pro Unter-Funktion

Bei Regen würde ich Nichts machen - je kälter das Modul ist, desto besser läuft Es.
Auch kann so ein Solar-Modul eine ganze Menge aus - hatte Mal einen Bericht auf N24 (??) gesehen, wo *glaub* ein rundes Bleigewicht mit 1m Auslage auf 90° (waagerecht) gezogen wurde um dann auf das senkrecht stehende Modul fallen zu lassen (das Gewicht schwingt an dem Pendel die 90° zum Modul, deformiert Das um einige cm und Alles 'dotzt zurück' - die Zeitlupenaufnahme sah echt unheimlich aus!!)
Viel mehr Gedanken würde ich mir darum machen, daß der Tracker samt Modul nicht vom Wind weggetragen wird.

Eine Beschattung plane ich bei der Thermischen ein ... aber Das ist eine ganz andere Baustelle ...

MfG
@postmaster-ino

Wie mach ich jzt am Besten mit meinem Code weiter?

Gerade was die ganzen abfrage der Unterfunktionen angeht?

Go Up