Hallo zusammen,
Wir haben ein Klein-Projekt mit unserem Kurs gestartet, mit dem wir ein Solarpanel auf einem Stellmotor () montiert haben. Dieses ist wie auf dem Bild unten angebracht. Ziel ist es, dass sich das Solarpanel in Richtung der Sonne ausrichtet. Dafür nutzen wir einen herkömmlichen Fotowiderstand um die Helligkeit auf einem integrierten Monitor anzeigen zulassen und der Stellmotor soll sich bei einem unterschrittenen Wert wieder hingegen der Sonne ausrichten. Wir haben diese Werte entsprechend des Raumlichtes angepasst.
Nun ergibt sich folgendes Problem: Der Fotowiderstand misst zwar korrekt den Wert, allerdings die Übertragung auf den Stellmotor nicht reibunglos. Deshalb richtet sich das Panel nicht aus und der Motor brummt lediglich vor sich hin.
Unsere Hypothesen wären: Einmal, dass die Stromversorgung über den 5V Anschluss nicht ausreichend ist, damit der Motor komplett ausdrehen kann. Da der Arduino nur am Laptop angeschlossen ist.
Zweitens wäre: Ob man mit zwei Anschlüssen am Stellmotor überhaupt auskommt, da man ja normalerweise vier der IN-Anchlüsse genutzt werden um den Motor zum Laufen zu kriegen.
Unser verwendeter Schrittmotor ist der 28BY J-48 mit ULN2003 Treiberplatine am Arduino.
Unser Sketch wäre wie folgt:
const int photoResistorPin= A0;
const int motorStepPin = 8;
const int motorDirectionPin = 9;
const int lightThresholdHigh = 650;
const int lightThresholdLow = 350;
void setup() {
// put your setup code here, to run once:
pinMode (photoResistorPin, INPUT);
pinMode (motorStepPin, OUTPUT);
pinMode (motorDirectionPin, OUTPUT);
Serial.begin (9600);
}
void loop() {
// put your main code here, to run repeatedly:
int lightIntensity= analogRead(photoResistorPin);
Serial.println (lightIntensity);
if (lightIntensity>lightThresholdHigh){
digitalWrite (motorDirectionPin, HIGH);
digitalWrite (motorStepPin, HIGH);
delay (10);
digitalWrite(motorStepPin, LOW);
delay (10);
}else if (lightIntensity<lightThresholdLow){
digitalWrite (motorDirectionPin, LOW);
digitalWrite (motorStepPin, HIGH);
delay (10);
digitalWrite (motorStepPin, LOW);
}
Vielen Lieben Dank, falls ihr uns helfen könntet.
Arduino Gruppe LER+M