• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
płynne zwijanie filamentu
#1
            Cześć siedzę sobie nad projektem redusera filamentu z 3mm na 1,75mm wiem ze jest troche tematow w internecie i pewnie jakbym się wgryzł to bym znalazł kod który mógłbym zaadoptować po paru zmianach ale chciałbym to z małą pomocą zrobić sam, w tym momencie jak zrobić żeby silnik krokowy kręcił się cały czas z prędkością X a nie skokowo co pomiar z fotorezystorów.

Jest 7 fotorezystorów dwa po dwa brzeżne są połączone w pary więc ich odczyty są wyższe.

Kod :
Kod:
const int dirPin = 2;
const int stepPin = 3;
const int stepsPerRevolution = 200;

int readPin0 = A0;
int readPin1 = A1;
int readPin2 = A2;
int readPin3 = A3;
int readPin4 = A4;
int pomiar;
int min_0 = 0;
int max_0;
int min_1 = 0;
int max_1;
int min_2 = 0;
int max_2;
int min_3 = 0;
int max_3;
int min_4 = 0;
int max_4;
int kroki = 2000;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
// Declare pins as Outputs
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);

}

void loop() {

pomiar = analogRead(readPin0);
if(pomiar>max_0){
  max_0=pomiar;
  }
while(min_0==0){
  min_0=pomiar;
  }
if(pomiar<min_0){
  min_0=pomiar;
  }
Serial.print("Sensory 1-2 : ");
Serial.print(pomiar);
Serial.print(" MIN : ");
Serial.print(min_0);
Serial.print(" MAX : ");
Serial.println(max_0);
if((pomiar-min_0)<30){
  kroki=kroki-20;
  }
//delay();

pomiar = analogRead(readPin1);
if(pomiar>max_1){
  max_1=pomiar;
  }
while(min_1==0){
  min_1=pomiar;
  }
if(pomiar<min_1){
  min_1=pomiar;
  }
Serial.print("Sensory   3 : ");
Serial.print(pomiar);
Serial.print(" MIN : ");
Serial.print(min_1);
Serial.print(" MAX : ");
Serial.println(max_1);
if((pomiar-min_1)<30){
  kroki=kroki-10;
}
//delay();

pomiar = analogRead(readPin2);
if(pomiar>max_2){
  max_2=pomiar;
  }
while(min_2==0){
  min_2=pomiar;
  }
if(pomiar<min_2){
  min_2=pomiar;
  }
Serial.print("Sensory   4 : ");
Serial.print(pomiar);
Serial.print(" MIN : ");
Serial.print(min_2);
Serial.print(" MAX : ");
Serial.println(max_2);
//delay();

pomiar = analogRead(readPin3);
if(pomiar>max_3){
  max_3=pomiar;
  }
while(min_3==0){
  min_3=pomiar;
  }
if(pomiar<min_3){
  min_3=pomiar;
  }
Serial.print("Sensory   5 : ");
Serial.print(pomiar);
Serial.print(" MIN : ");
Serial.print(min_3);
Serial.print(" MAX : ");
Serial.println(max_3);
if((pomiar-min_3)<30){
  kroki=kroki+10;
}
//delay();

pomiar = analogRead(readPin4);
if(pomiar>max_4){
  max_4=pomiar;
  }
while(min_4==0){
  min_4=pomiar;
  }
if(pomiar<min_4){
  min_4=pomiar;
  }
Serial.print("Sensory 6-7 : ");
Serial.print(pomiar);
Serial.print(" MIN : ");
Serial.print(min_4);
Serial.print(" MAX : ");
Serial.println(max_4);
if((pomiar-min_4)<30){
  kroki=kroki+20;
}
//delay();

{
  // Set motor direction clockwise
  digitalWrite(dirPin, HIGH);

  // Spin motor slowly
  for(int x = 0; x < stepsPerRevolution; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(kroki);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(kroki);
  }

}
Serial.print("predkosc : ");
Serial.println(kroki);
}
 odczyty z serial portu wygladają tak:

[Obrazek: Thumbnail.aspx?e=d2oO-lW5ywLG2A301hIZ6Jm...dom2o&pv=2]
a układ :
[Obrazek: Thumbnail.aspx?e=6sxsBKyfO5rsmP-vbp4JtcX...C2mu4&pv=2]


Załączone pliki Miniatury
   
 
Odpowiedź
  


Wiadomości w tym wątku
płynne zwijanie filamentu - przez gervazy1978 - 01-11-2020, 00:47
RE: płynne zwijanie filamentu - przez kaczakat - 01-11-2020, 03:46
RE: płynne zwijanie filamentu - przez gervazy1978 - 01-11-2020, 21:46
RE: płynne zwijanie filamentu - przez kaczakat - 02-11-2020, 03:29

Skocz do:


Przeglądający: 1 gości