• 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
JAK to się robi ...
#1
Sprawa  wygląda  tak  kod  z  internetu sterowanie  hdd z ardrino u mnie UNO  oczywiście  działa  ...
https://www.youtube.com/watch?v=CMz2DYpos8w

"lekko zmodyfikowany idea jak w oryginale " jest  to "szybki kod  w pętli " przełączający cewki o 120 
i chciałem w ramach Nuki-experymentu  podkraść/podejrzeć zmienna co 1s z zastosowaniem mils() i wyświetlić na  oled i mam problem ...(w   zasadzie chciałbym co 0,5 s)
dodanie  kodu wyświetlania  na  oled  lub na  serialu spowalnia pętlę co doprowadza do szarpania silnika ...
JAK się takie zadanie realizuje ...
W głównej pętli wykonuje  się coraz szybszy  rozpędzający kod  do punktu stabilizacji a tu poboczne  zadanie psuje pracę ....  NIE WIEM JAK WSTAWIC KOD sory robie jak umie ....(prosił bym o link jak to zrobic )

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

int phase1 = 2;
int phase2 = 3;
int phase3 = 4;
int led1 = 10;
int led2 = 12;
int led3 = 13;
int steps = 5;
unsigned long MaxKrok   = 40000;
unsigned long MinKrok = 1200;
unsigned long aktualnyCzas = 0;
unsigned long zapamietanyCzas= 0;

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 
  display.setTextColor(WHITE); 
    pinMode(led1, OUTPUT);  
    pinMode(led2, OUTPUT);
    pinMode(led3, OUTPUT);
    pinMode(phase1, OUTPUT);
    pinMode(phase2, OUTPUT);
    pinMode(phase3, OUTPUT);
    digitalWrite(led1, LOW); 
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
}

void loop() {

  switchStep(1);
  switchStep(2); 
  switchStep(3);
 
   if(MaxKrok > MinKrok)   //kroki potrzebne  do przyspieszenia  silnika
  {
    MaxKrok = MaxKrok - steps;
  } else {
    MaxKrok=MinKrok;
  }
 if (MaxKrok < 39950 && MaxKrok > 20000) { digitalWrite(led1, HIGH); steps = 300; } else digitalWrite(led1, LOW);
 if (MaxKrok < 20000 && MaxKrok > 3000 ) { digitalWrite(led2, HIGH); steps = 50 ;} else digitalWrite (led2 , LOW);
 if (MaxKrok < 3000 && MaxKrok > MinKrok ) { digitalWrite(led3, HIGH); steps = 2 ;} else digitalWrite (led3 , LOW);

// podkradniecie zmiennej MaxKrok co 1s z petli glownej i do oled
aktualnyCzas = millis();
   if (aktualnyCzas - zapamietanyCzas >= 1000)
    {
    display.clearDisplay();
    display.setCursor(8,10);
    display.println(MaxKrok);
    display.display();
    zapamietanyCzas = aktualnyCzas;
  }
}

void switchStep(int stage) // zmiana  faz
{
  switch(stage)
  {
  case 1:
    digitalWrite(phase1, HIGH);
    digitalWrite(phase2, LOW);
    digitalWrite(phase3, LOW);
    myDelay(MaxKrok);
    break;
    
  case 2:
    digitalWrite(phase1, LOW);
    digitalWrite(phase2, HIGH);
    digitalWrite(phase3, LOW);
    myDelay(MaxKrok);
    break;
    
  default:
    digitalWrite(phase1, LOW);
    digitalWrite(phase2, LOW);
    digitalWrite(phase3, HIGH);
    myDelay(MaxKrok);
    break;
  }  
}
void myDelay(unsigned long p) {
if (p > 16380) {
  delay (p/1000);
  } else {
  delayMicroseconds(p);
  }
}

POZDRAWIAM  DZIEKI
 
Odpowiedź
  


Wiadomości w tym wątku
JAK to się robi ... - przez maniek100 - 25-04-2019, 12:19
RE: JAK to się robi ... - przez Robson Kerman - 25-04-2019, 19:23
RE: JAK to się robi ... - przez kaczakat - 25-04-2019, 19:53
RE: JAK to się robi ... - przez es2 - 25-04-2019, 21:50
RE: JAK to się robi ... - przez kaczakat - 26-04-2019, 21:40
RE: JAK to się robi ... - przez maniek100 - 26-04-2019, 12:54
RE: JAK to się robi ... - przez es2 - 26-04-2019, 16:22
RE: JAK to się robi ... - przez Robson Kerman - 26-04-2019, 21:14
RE: JAK to się robi ... - przez maniek100 - 02-05-2019, 19:43
RE: JAK to się robi ... - przez es2 - 02-05-2019, 20:06
RE: JAK to się robi ... - przez kaczakat - 04-05-2019, 15:38
RE: JAK to się robi ... - przez es2 - 04-05-2019, 16:31
RE: JAK to się robi ... - przez kaczakat - 04-05-2019, 23:09
RE: JAK to się robi ... - przez es2 - 05-05-2019, 10:33

Skocz do:


Przeglądający: 1 gości