• 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
Problem z Serwem
#11
es2

Trochę przed chwilą pokombinowałem i wgrałem taki kod:
Kod:
#include <Servo.h>
Servo sg90;
int MGD;
int GD=0;
int p=0;
void setup()
{
  sg90.attach(9);
  MGD=500;
  Serial.begin(9600); 
 
}
void loop()
{  
  GD=analogRead(A0);
  delay(10);
  
  

  if(GD<MGD-100)
  {
  p=1;
  sg90.write(p);
  }else{
        
  if(GD>MGD+100)
  {
  p=180;
  sg90.write(p);
  Serial.println(p);
  }
  else
  {
}
}
}
  
Wszystko działa jak powinno oprócz 2 rzeczy. 
1: Jak zrobić, aby po wykonaniu ruchu oś servo zostawała w miejscu.
2: Jeżeli silnik obróci się na 180 stopni, zatrzymuje się w miejscu, ale jeżeli silnik ma być na 0 stopni, wykonuje cały obrót i się kręci. Jak to rozwiązać, aby na 180 stopniach też wykonywał pełen obrót i kręcił się?
 
Odpowiedź
#12
Przypisanie 500 nie jest poprawne. Jeśli już to 512 bo taka powinna byc wartość dla połowy nastawy potencjometru. Powinna ale nie musi. Sam ADC przy 1/2 Vref da ok 512 ale potencjometr, przy połowie nastany nie musi dac dokładnie 1/2 Vref.
Stworzyłeś więc kod "godny" Arduinowca, kod, który działa tylko u autora i tylko na konkretnej płytce i konkretnym potencjometrze. Zrób jak pisałem, chyba, ze chcesz należeć do grupy "programistów" i potwierdzać to, że Arduino to badziewie.

Inna sprawa, to co będzie, gdy podczas resetu uC potencjometr nie będzie w środkowym położeniu? .Kicha będzie!Porządny program powinien mieć funkcję kalibracji a jej wynik zapisać w EEPROM. Na razie możesz to sobie odpuścić i pamiętać, że po resecie, potencjometr musi znajdować się w pozycji spoczynkowej. W 99% przypadków tak będzie, ale nie w 100.

Nie rób więc badziewiarskiego programu, zrób uśrednianie, bo prędzej czy później będzie ono potrzebne. Jeśli uważasz, że się mylę, to uzasadnij to rzeczowo.
 
Odpowiedź
#13
(09-11-2018, 17:00)es2 napisał(a): Przypisanie 500 nie jest poprawne. Jeśli już to 512 bo taka powinna byc wartość dla połowy nastawy potencjometru. Powinna ale nie musi. Sam ADC przy 1/2 Vref da ok 512 ale potencjometr, przy połowie nastany nie musi dac dokładnie 1/2 Vref.
Stworzyłeś więc kod "godny" Arduinowca, kod, który działa tylko u autora i tylko na konkretnej płytce i konkretnym potencjometrze. Zrób jak pisałem, chyba, ze chcesz należeć do grupy "programistów" i potwierdzać to, że Arduino to badziewie.

Inna sprawa, to co będzie, gdy podczas resetu uC potencjometr nie będzie w środkowym położeniu? .Kicha będzie!Porządny program powinien mieć funkcję kalibracji a jej wynik zapisać w EEPROM. Na razie możesz to sobie odpuścić i pamiętać, że po resecie, potencjometr musi znajdować się w pozycji spoczynkowej. W 99% przypadków tak będzie, ale nie w 100.

Nie rób więc badziewiarskiego programu, zrób uśrednianie, bo prędzej czy później będzie ono potrzebne. Jeśli uważasz, że się mylę, to uzasadnij to rzeczowo.
Przepraszam, ale ja jestem początkujący i nie za bardzo wiem jak to zrobić. Mógłbyś proszę napisać jakiś przykładowy kod jak zrobić średnią z wyników i jak zapisać ją w pamięci EEPROM?
 
Odpowiedź
#14
(10-11-2018, 22:47)Jezel123 napisał(a): Przepraszam, ale ja jestem początkujący i nie za bardzo wiem jak to zrobić. Mógłbyś proszę napisać jakiś przykładowy kod jak zrobić średnią z wyników i jak zapisać ją w pamięci EEPROM?

Pomoc u mnie jest za 0 zł.Odwalenie roboty w tym momencie 200/h (dość korzystna stawka). Aby napisać, pzetestować itp, szacuję na 4..6 godzin. Mogę oczywiście napisać na odpier....się, za 0zł ale wtedy, 1000 osób wykaże błędy w moim kodzie.
Jeśli kolega jest chętny, mam wolne 3 dni, mogę podjąć się roboty. Ale promocja tylko do jutra,później mam konkretną robotę.
 
Odpowiedź
#15
Sposób pisania programu sugeruje, że dopiero zaczynasz i nie ma nic złego w tym, że nie wiesz nic. Polecam kurs Arduino: https://forbot.pl/blog/kursy. Na razie to wygląda, jakbyś wybrał się z nożem na strzelaninę. Po przerobieniu tego i poznaniu podstaw C/C++ z licznych DARMOWYCH publikacji sam się przekonasz, jakie trywialne masz problemy. Ogólnie o C++ polecam kurs wideo: https://www.youtube.com/watch?v=ErOzmh3B...mBzb40PaDo .
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości