Een vraag of dit mogelijk is qua aansluitingen

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 70
Geregistreerd: 05 Apr 2018, 00:44

Een vraag of dit mogelijk is qua aansluitingen

Berichtdoor Gompy » 01 Mei 2018, 21:35

Ik ben met mijn echte zonnepaneel aan de slag gegaan, maar die wil ik niet met servo's uitvoeren maar met "actuators" [1].
De servo's zijn veel te zwak om een paneel van 10 kg te bewegen en vast te houden in de gewenste stand.
Nu heb ik eea op papier gezet, maar vraag me af of ik werkelijk de poorten zo kan aansluiten als ik voor ogen heb ?
Aangezien ik een beginner ben vraag ik me af of ik beide seriële aansluitingen apart kan gebruiken ?
De tweede poort heb ik nl nodig om een tijdmoduul op te zetten zodat 's nachts het paneel naar neutraal kan draaien.

[1] de actuators zijn normale motoren met vertraging welke een draadeind laten rond draaien.
De "moer" op het draadeind bediend de verstelling, motor staat vast aan de constructie.

Graag jullie mening, de sketch moet nog geschreven worden (ben voorlopig nog met de hardware bezig)

PS, ik zit nog met de eindschakelaars in mijn maag....volgens mij zijn er geen poortjes meer voor (?)
Bijlagen
solarpanel-motor.jpg
solarpanel-motor.jpg (40.64 KiB) 375 keer bekeken

Advertisement

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

Re: Een vraag of dit mogelijk is qua aansluitingen

Berichtdoor shooter » 03 Mei 2018, 00:35

Ja hoor dat gaat prima, je kunt de eindscahkelaars ook gewoon allemaal op 1 ingang zetten, als je er voor zorgt daat er maar 1 motor teglijk draait, dan kun je dat zien, en dan gelijk een stukje terug, zodaat een volgende gezien kan worden.
de LCD en de DS komen op dezelfde pinnen ze hebben toch elk een ander adres.
paul deelen
shooter@home.nl

Berichten: 70
Geregistreerd: 05 Apr 2018, 00:44

Re: Een vraag of dit mogelijk is qua aansluitingen

Berichtdoor Gompy » 03 Mei 2018, 14:17

De motoren draaien al nodig beide, dat is nodig want de zon gaat gelijktijdig zowel omhoog/omlaag als van links/rechts.
Ook als ik het paneel naar neutraal wil laten gaan 's nachts zullen naar aller waarschijnlijkheid beide motoren gaan draaien.
Een kennis van mij heeft zijn een Arduino op een CNC frees zitten en daar zitten de eindschakelaars inderdaad gepaard per as op 1 ingang.
Helaas kan ik niet in het programma kijken hoe ze dat hebben gedaan want dat is gekocht van Estlcam en wordt als HEX aangeleverd.
Hij gebruikt ook steppers ipv motoren omdat hij veel nauwkeuriger moet frezen dan ik bij het verstellen van mijn zonnepaneeltje.

Over het gebruik van klokmoduul en LCD, op de LCD wil ik (voorlopig) zien waar waar het paneel staat.
Het klokmoduul: Stel 's morgens is het mooi weer, maar 's middags gaat het regenen, dan staat het paneel "ergens" stil.
Om het paneel klaar te zetten voor de volgende dag wil ik het 's nachts (0:00 uur) weer op stand 12 uur zetten, de LDR's regelen het de volgende dag zelf wel weer.
Dit verklaart het klokje, maar daar heb ik nog geen kaas van gegeten.....dat moet ik ook eerst weer leren te gebruiken.
Ik ben al blijk te horen dat eea mogelijk is met zowel de LCD als de klokmoduul.

Alvast bedankt, Rob

Berichten: 70
Geregistreerd: 05 Apr 2018, 00:44

Re: Een vraag of dit mogelijk is qua aansluitingen

Berichtdoor Gompy » 03 Mei 2018, 20:34

Zou iemand aub even de moeite willen nemen of ik de code goed heb geschreven.....voordat ik wat opblaas.
Ik heb nog nooit met de L298N of motoren gewerkt, dus weet niet of ik het wel goed heb gedaan want mijn budget is wat beperkt door onze regering :(

Code: Alles selecteren
#define enA 9
#define in1 4
#define in2 5
#define enB 10
#define in3 6
#define in4 7

const int LDR_Up = A0; // Bruin
const int LDR_Down = A1; // Geel
const int LDR_Left = A2; // Orange
const int LDR_Right = A3; // Groen

int Val_LDR_up = analogRead(LDR_Up);
int Val_LDR_down = analogRead(LDR_Down);
int Val_LDR_left = analogRead(LDR_Left);
int Val_LDR_right = analogRead(LDR_Right);
// int dif_LR = 0;
// int dif_UD = 0;

int motorSpeedA = 0;
int motorSpeedB = 0;

void setup() {
  Serial.begin(9600);
 
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}

void loop() {
  int xAxis1 = analogRead(A0); // Lees LDR1 X-as boven
  int xAxis2 = analogRead(A1); // Lees LDR2 X-as onder
  int yAxis1 = analogRead(A2); // Lees LDR1 Y-as links
  int yAxis2 = analogRead(A3); // Lees LDR2 Y-as rechts

// X-as linksom
    if (xAxis1 < 470) {
// Motor A linksom
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
// Lees X-as voor linksom van 470 naar 0 is 0 tot 255 voor PWM signaal motor snelheid
    motorSpeedA = map(xAxis1, 470, 0, 0, 255);
  }
  else if (xAxis2 > 550) {
// Motor A rechtsom
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
// Lees x-as voor rechtsom van 550 naar 1023 is 0 tot 255 voor PWM signaal motor snelheid
    motorSpeedA = map(xAxis2, 550, 1023, 0, 255);


// Y-as linksom
    if (yAxis1 < 470) {
// Motor B linksom
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);
// Lees Y-as voor linksom van 470 naar 0 is 0 tot 255 voor PWM signaal motor snelheid
    motorSpeedB = map(yAxis1, 470, 0, 0, 255);
  }
  else if (yAxis2 > 550) {
// Motor B rechtsom
    digitalWrite(in3, LOW);
    digitalWrite(in4, HIGH);
// Lees Y-as voor rechtsom van 550 naar 1023 naar 0 tot 255 voor PWM signaal motor snelheid
    motorSpeedB = map(yAxis2, 550, 1023, 0, 255);

  }
// Als LDR ingangen gelijk zijn
  else {
    motorSpeedA = 0;
    motorSpeedB = 0;
  }

// Tegenengaan brommen van motor - 100 richtwaarde
  if (motorSpeedA < 100) {
    motorSpeedA = 0;
  }
  if (motorSpeedB < 100) {
    motorSpeedB = 0;
  }
  analogWrite(enA, motorSpeedA); // Stuur PWM signaal naar motor A
  analogWrite(enB, motorSpeedB); // Stuur PWM signaal naar motor B
  }
     Serial.print(" Horizontaal\t");
     Serial.print(motorSpeedA); 
     Serial.print(" \t bruin  ");
     Serial.print(Val_LDR_up);
     Serial.print(" \t geel  ");
     Serial.print(Val_LDR_down);
     Serial.print(" difference ");
     Serial.print(Val_LDR_up - Val_LDR_down);
     
     Serial.print(" Vertikaal\t");
     Serial.print(motorSpeedB);
     Serial.print(" \t orange  ");
     Serial.print(Val_LDR_left);
     Serial.print(" \t groen  ");
     Serial.print(Val_LDR_right);
     Serial.print(" difference ");
     Serial.print(Val_LDR_right - Val_LDR_left);
     
}

Berichten: 70
Geregistreerd: 05 Apr 2018, 00:44

Re: Een vraag of dit mogelijk is qua aansluitingen

Berichtdoor Gompy » 03 Mei 2018, 21:45

Er staan wat schrijffoutjes in de code.....hoofdletters vergeten.

En waarom schrijft de serail.print achter elkaar en niet onder elkaar ?

Code: Alles selecteren
#define enA 9
#define in1 4
#define in2 5
#define enB 10
#define in3 6
#define in4 7

const int LDR_Up = A0; // Bruin
const int LDR_Down = A1; // Geel
const int LDR_Left = A2; // Orange
const int LDR_Right = A3; // Groen

int Val_LDR_Up = analogRead(LDR_Up);
int Val_LDR_Down = analogRead(LDR_Down);
int Val_LDR_Left = analogRead(LDR_Left);
int Val_LDR_Right = analogRead(LDR_Right);

int motorSpeedA = 0;
int motorSpeedB = 0;

void setup() {
  Serial.begin(9600);
 
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}

void loop() {
  int xAxis1 = analogRead(A0); // Lees LDR1 X-as boven
  int xAxis2 = analogRead(A1); // Lees LDR2 X-as onder
  int yAxis1 = analogRead(A2); // Lees LDR1 Y-as links
  int yAxis2 = analogRead(A3); // Lees LDR2 Y-as rechts

// X-as linksom
    if (xAxis1 < 470) {
// Motor A linksom
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
// Lees X-as voor linksom van 470 naar 0 is 0 tot 255 voor PWM signaal motor snelheid
    motorSpeedA = map(xAxis1, 470, 0, 0, 255);
  }
  else if (xAxis2 > 550) {
// Motor A rechtsom
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
// Lees x-as voor rechtsom van 550 naar 1023 is 0 tot 255 voor PWM signaal motor snelheid
    motorSpeedA = map(xAxis2, 550, 1023, 0, 255);


// Y-as linksom
    if (yAxis1 < 470) {
// Motor B linksom
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);
// Lees Y-as voor linksom van 470 naar 0 is 0 tot 255 voor PWM signaal motor snelheid
    motorSpeedB = map(yAxis1, 470, 0, 0, 255);
  }
  else if (yAxis2 > 550) {
// Motor B rechtsom
    digitalWrite(in3, LOW);
    digitalWrite(in4, HIGH);
// Lees Y-as voor rechtsom van 550 naar 1023 naar 0 tot 255 voor PWM signaal motor snelheid
    motorSpeedB = map(yAxis2, 550, 1023, 0, 255);

  }
// Als LDR ingangen gelijk zijn
  else {
    motorSpeedA = 0;
    motorSpeedB = 0;
  }

// Tegenengaan brommen van motor - 100 richtwaarde
  if (motorSpeedA < 100) {
    motorSpeedA = 0;
  }
  if (motorSpeedB < 100) {
    motorSpeedB = 0;
  }
  analogWrite(enA, motorSpeedA); // Stuur PWM signaal naar motor A
  analogWrite(enB, motorSpeedB); // Stuur PWM signaal naar motor B
  }
     Serial.print(" Horizontaal\t");
     Serial.print(motorSpeedA); 
     Serial.print(" \t bruin  ");
     Serial.print(Val_LDR_Up);
     Serial.print(" \t geel  ");
     Serial.print(Val_LDR_Down);
     Serial.print(" difference ");
     Serial.print(Val_LDR_Up - Val_LDR_Down);
     
     Serial.print(" Vertikaal\t");
     Serial.print(motorSpeedB);
     Serial.print(" \t orange  ");
     Serial.print(Val_LDR_Left);
     Serial.print(" \t groen  ");
     Serial.print(Val_LDR_Right);
     Serial.print(" difference ");
     Serial.print(Val_LDR_Right - Val_LDR_Left);
     
}

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

Re: Een vraag of dit mogelijk is qua aansluitingen

Berichtdoor shooter » 07 Mei 2018, 22:31

kijk bij serial println
paul deelen
shooter@home.nl

Berichten: 70
Geregistreerd: 05 Apr 2018, 00:44

Re: Een vraag of dit mogelijk is qua aansluitingen

Berichtdoor Gompy » 07 Mei 2018, 22:44

Bedankt, ik had deze al gevonden.

Mvg, Rob

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten