Poniżej kod programu napisanego w Builder C++ a w zalączniku dodany skompilowany exe'c //--------------------------------------... #include <vcl.h> #pragma hdrstop #include "silnik_u.h" //--------------------------------------... #pragma package(smart_init) #pragma...
Praktycznie użyłem tylko 1 klawisza do edycji kodu:D (delete) Prawiłem kod gdyż zapomniałem o digitalRead :D
Jak uzupełnić ten kod, aby zaprogramować jakąś ilość obrotów i zatrzymanie silnika ? [syntax=arduino] #include <Stepper.h>//dodajemy do szkicu bibliotekę obsługującą silniki krokowe #define ILOSC_KROKOW 200 //definiujemy stałą gdzie podajemy ilość kroków zależną od użytego silnika w naszym przypadku 32 Stepper mojSilnik(ILOSC_KROKOW, 8, 10, 9,...
Wykluczone! _delay_ms jest makrem które działa tylko na wartościach stałych, użycie zmiennej spowoduje wkompilowanie biblioteki liczb zmiennoprzecinkowych a same opóźnienie będzie się miało nijak do tego oczekiwanego. Time może być stałą preprocesora (#define), nigdy zmienną. Dla zmiennej lepiej napisać osobną funkcję, która w pętli wykonuje _delay_ms(1)...
#include <AccelStepper.h> // Definicje pinów dla silnika #define X_STEP_PIN 3 #define X_DIR_PIN 6 AccelStepper stepper(AccelStepper::DRIVER, X_STEP_PIN, X_DIR_PIN); int targetSteps = 2000; // Liczba kroków do wykonania (np. 10 obrotów przy 200 krokach na obrót) int stepCount = 0; void setup() { stepper.setSpeed(500); // Ustaw prędkość w krokach...
Wklejony przez Ciebie kod jest dobry do demonstracji działania silnika i nic poza tym. Głównym problemem jest tu zastosowanie delayMicroseconds() . Poczytaj proszę o możliwości zastąpienia tych funkcji funkcjami nieblokującymi - choćby z wykorzystaniem słynnych millis() - jak to ugryźć znajdziesz w przykładzie Arduino IDE "BlinkWithoutDelay". Ale do...
Chodzi mi o funkcję Delay. Patrz komentarz w kodzie: [syntax=asm] .include "m8def.inc" ;---------------------------------------... .def acc = r16 ; r16 teraz ma nazwę acc .def acc2 = r17 ; r17 teraz ma nazwę acc2 .cseg .org 0x00 rjmp reset //tutaj zostawiamy sobie miejsce na wektory przerwań. .org 0x13...
Witam, zacząłem zabawę z Arduino i mam podobny problem, silnik (28BYJ-48) nie wykonuje zmiany kierunku obrotów, kod taki: #include <Stepper.h> Stepper mojSilnik(32,8,9,10,11); //łączę INT1 z 8, INT2 z 9, etc int stepCount = 0; //ta linia nie wpływa na zachowanie silnika void setup() { } void loop() { mojSilnik.setSpeed(300); mojSilnik.step(512);...
Z tego co mi się wydaję aby działało delay tzreba dać #include <util/delay.h>
Gdybyś pokazał kod to zapewne byłoby łatwiej, niektórzy mogą myśleć, że zbyt łatwo :) [syntax=c] #include <avr/io.h> //silniki #define MOT1A (1<<PA0) #define MOT2A (1<<PA1) #define PWM1 (1<<PD5) #define PWM2 (1<<PD4) int main(void) { DDRD |= PWM1; PORTB |= PWM1; //silmik1 DDRA |= MOT1A | MOT2A; //wyjście PORTA |= MOT2A;...
Witam Normalnie już nie mogę znaleźć przyczyny więc pisze posta. Podłączyłem sobie silnik DC do mostka H steruje atmegą wszystko działa ok. Tylko jedna funkcja którą sobie zrobiłem do zmiany PWM nie działa poprawnie. Oto kod. main.c [syntax=c]#include "silnik.h" #include <avr/io.h> int main() { InitSilnik(); obrPrawoSilnik(); setPWM(100); //PWM...
Z tymi poprawkami powinno być lepiej (nie testowane): pokazuje jeden error, masz jakis pomysl? Dzieki! main.c:4:10: fatal error: 'libpic30.h' file not found #include <libpic30.h> ^~~~~~~~~~~~ 1 error generated.
Przewody są połączone, zgodnie z wyznaczoną kolejnością faz. Na zdjęciu rzeczywiście nie jest to uchwycone, co może być mylące. Ale zapewniam, że są połączone. Spróbuj po prostu ruszyć silnikiem takim kodem : [syntax=c]#include <Servo.h> #include <Arduino.h> Servo myservo; // create servo object to control a servo void setup() { myservo.attach(9);...
Witam. Jestem bardzo początkującym i potrzebuje pomocy w wysterowaniu silnikiem DC za pomocą sygnałów z dwóch transoptorów szczelinowych w języku C. Umiem wysterować silnik aby sam wykonywał obroty w prawo lub lewo oraz zatrzymywał się po pewnym czasie. Niestety nie wiem jak dopasować kod aby podać do niego sygnały z transoptorów odczytujących położenie...
Coś w ten deseń? Uwaga, pisano "na kolanie".
przede wszystkim zmien .include "tn22def.inc" na .include "tn13def.inc" przekompiluj program.... - zobacz jakie błędy następnie w jednym okienku acrobat readera otwierasz "dejtaszita" attiny22 a w drugim attiny13 - strona po stronie, rejestr po rejestrze porownujesz co trzeba zmienic... - moze nie jest to kompleksowe rozwiązanie - ale od tego bym zaczął.......
Cześć, mam problem, chciałbym stworzyć taki program żeby po wykryciu ruchu przez czujnik PIR silnik krokowy 28BYJ-48 obracał się o 90°. Ten program poniżej powoduje że po wykryciu ruchu silnik obraca się cały czas bez końca. Z góry dzięki za pomoc. [syntax=c] #include <Stepper.h> #define PIR 2 #define ILOSC_KROKOW 32 Stepper Silnik(ILOSC_KROKOW,8,9,10,11);...
No próbowałem np. z: 01 00 PD2 wysoki PD3 niski } }[/syntax] I to nie działa, bo myślałem, że ma być 0 na minusie i 1 na plusie, ale zamiast mi powiedzieć jedną linijkę kodu, to wywody mi robisz, nic się nie dzieje bez i z przyciskiem.
Wygląda to coraz lepiej. Usiadłem na chwilę do symulatora Arduino. Chciałbym pokazać Ci, jak można wpleść do tego maszynę stanów. Zaletą jest względna przejrzystość kodu, to, że pętla główna nie jest blokowana (np. w oczekiwaniu na wprowadzenie liczby) i to, że możesz w dowolny sposób modyfikować ilość stanów aplikacji i przejść pomiędzy stanami. Poniższy...
#include <IRLibTimer.h> Poszukiwania zacznij od podejżenia kodu tej biblioteki.
Witam, dlaczego w tym programie działa obrót w prawo (zgodnie ze wskazówkami zegara) a w lewo już nie. Czy to błąd programu czy uszkodzone coś w moim silniku krokowym lub sterowniku? #include <Stepper.h> //dodajemy do szkicu bibliotekę obsługującą silniki krokowe #define ILOSC_KROKOW 32 //definiujemy stałą gdzie podajemy ilość kroków zależną od...
Witam! Mam problem ze sterowaniem silnikiem DC przy pomocy PWM. Jeśli ustawie PWM jako stałą wartość np. wypełnienie 100% to wszystko ładnie działa, ale gdy chcę, aby silnik zmieniał prędkość, to dzieją się cuda... [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> ISR(INT2_vect, ISR_NOBLOCK) { DDRB^=(1<<PB3);...
Witam, Steruję małym silniczkiem krokowym #include <Stepper.h> const int stepsPerRevolution = 25; //silnik ma 200 kroków/obrót ale tu dałem 25, żeby obracał się o niewielki kąt Stepper myStepper(stepsPerRevolution, 8,9,10,11); void setup() { myStepper.setSpeed(2); } void loop() { myStepper.step(stepsPerRevolution...
(at)ElektrodaBot DODAJ DO TEGO ZAMIAS ANALOGREAD DIGITALREAD BO CHCE ŻEBY PILOT TO WŁĄCZAŁ BO SILNIK ZAMOISTNIE CHODZI #include <IRremote.h> #define DIR_PIN 11 #define STEP_PIN 10 #define IR_RECEIVER_PIN A0 #define POWER_BUTTON_CODE 0xFD00FF // Kod przycisku włączania na pilocie IR #define SPEED_UP_BUTTON_CODE 0xFD08F7 // Kod przycisku zwiększania...
Niedawno zbudowałem układ sterowania do silników krokowych. Rysunek poniżej przedstawia ten układ sterowania. http://alfa.icis.pcz.pl/~saturn/schemat.... W linuksie napisania prostego programu do sterowania silnika krokowego nie sprawiło mi większego problemu. Zamieszczam przykładowy kod źródłowy napisanego przeze mnie w linuksie #include <sys/io.h>...
Witam, Mam problem z wysterowaniem silnika bipolarnego (4 przewody idące do cewek). Dokładnie jest to aktuator liniowy. Program, który napisałem powinien działać, ale niestety nie działa, jak to w życiu bywa... Nie wiem, czy problem w sprzęcie, czy jednak...w moim programie. Generalnie w skrócie: mam 5 wejść do układu scalonego odpowiedzialnego za sterowanie...
Witam próbuję wysterować silniki przez PWM, przeczytałem poradnik na mikrokontrolery.blogspot.com i z kodu zmieniłem porty, lecz dalej nic się nie dzieje ze silnikami... http://obrazki.elektroda.pl/9186829100_1... http://obrazki.elektroda.pl/4064646700_1... Wie ktoś jaka może być przyczyna lub co zmienić? Z góry dzięki.
[syntax=arduino]#include <Servo.h> #include <AccelStepper.h> #define stepPin 4 #define dirPin 5 const int iCzujInd = 10; const int iCzujOdb = 23; const int iStart = 11; const int iStop = 26; const int iReset = 12; const int iCzujTasm = 9; const int qLedStart = 29; const int qLedReset = 30; const int qServo = 31; const int qLedOK = 32; const...
Witam Próbuję sterować silnikiem krokowym z 3 przycisków lewo prawo i stop poprzez arduino. Czy jest to możliwe, bo w internecie nie mogę znaleźć jakiegokolwiek podobnego kodu? Posiadam taki kod wyjściowy. [syntax=c]#include <Stepper.h> //dodajemy do szkicu bibliotekę obsługującą silniki krokowe #define ILOSC_KROKOW 32 //definiujemy stałą gdzie...
Witam. Dopiero zaczynam swoją przygodę z robotyką amatorską i natrafiłem na mały problem. Mianowicie zbudowałem układ z mikrokontrolerem Atmega16a, który przy pomocy układu L293D ma sterować kierunkiem obrotu dwóch silników w podwoziu manipulatora(bez PWM). Wszystko niby działa, ale tylko przy naciśnięciu jednego switcha silnik ma prawidłowe obroty....
witam wszystkich. Napisałem sobie programik obsługujący magistralę I2C i wszystko było Ok do czasu jak miał on wyświetlać tylko wartość odczytana z przetwornika A/C.Chcę jednak również by mi ten programik sterował silnikiem krokowym proporcjonalnie do wartości z potencjometru.Poniżej kod #include <avr\io.h> #include <stdio.h> #include <inttypes.h>...
Nie jestem programistą i tak łatwo sobie z kodem nie poradzę. to jaki jest cel pchania się w DIY? Dodano po 29 Uruchom ten kod na swoim shieldzie i daj znać, czy kręci silnikiem 1. Będziemy wiedzieli, czy board działa. [syntax=c]#include <Wire.h> #include <Adafruit_MotorShield.h> #include "utility/Adafruit_MS_PWMServoDriver.h" Adafruit_MotorShield...
Witam Chciałbym zbudować pojazd napędzany dwoma silnikami krokowymi. Na chwilę obecną mam zbudowane podwozie z zamontowanymi silnikami. Na początek ma być sterowane podczerwienią. Dla jednego silnika działa, zwykły program zmieniający stany co 3ms dla sterowania pół-krokowego ( silnik unipolarny 6 przewodów). Problem jest z sterowaniem 2 silników, kroki...
kolumny tabel 1 kolumna to kąt 2 to przeliczenie na radiany 3 to wartość napięcia w danym punkcie sinusoidy przemnożona jak widać przez różne wartości sin przyjmuje 1 w 90 stopniach czyli mnożnik to też wartość maksymalna 4 kolumna to (Z64^2)/(30*30) czyli wypełnienie w zakresie 0-1 ostatnia kolumna w każdej tabeli czyli te 90 89 to oznacza wypełnienie...
Hej! Potrzebuje napisac np. nastepujacy program dla robota: prawe kolo jedzie do przodu, po jakims czasie(na razie dowolnym) zatrzymuje się. Problem polega na tym, że nie działa opóźnienie. Moje testy wskazujna to, że procek nie wychodzi z pętli opóźniającej (wykonuje się wszystko do tej pętli). Należy zauważyć, że wszystko z osobna działa (opóźnienie...
Teoretycznie nie wiem czy da się prościej: [syntax=c]#include <Arduino.h> #define MOTOR_STEPS 48 #define RPM 80 #define DIR A8 #define STEP A9 #define ENABLE A15 #include "A4988.h" #define MS1 A14 #define MS2 A13 #define MS3 A12 A4988 stepper(MOTOR_STEPS, DIR, STEP, ENABLE, MS1, MS2, MS3); unsigned long aktualnyCzas = 0; unsigned long czasImpulsu...
Już Ci ktoś tłumaczył w innym temacie, że _delay_ms(i) gdzie i się zmienia nie zadziała tak jak trzeba. Jak widać nauka poszła w las... W Twoim przypadku dzieją się tylko 2 rzeczy równolegle: 1) sterujesz silnikiem (z odpowiednim opóźnieniem między impulsami, od 4 do 1000 ms) 2) sprawdzasz stan przycisków (co 30 ms). Dlatego ustawiasz sobie timer na...
Przez ostatnie dni trochę popróbowałem i coś tam wychodzi... Mogę już wpisywać dane przerwy... Mam jednak problem z tą przerwą pomiędzy kolejnymi ruchami silnika. aktualnie do wykonania tej przerwy używam delay(), niestety użycie tego blokuje wszystko, przez co nie mogę swobodnie zmieniać wielkości tej przerwy... jedynie jak się wstrzelę klikając cały...
Witam. Otóż chce sterować silnikami, które później zamontuje na podwozie robota. Ale mam problem z kodem. Pomożecie? [syntax=c]#include <IRremote.h> #define irPin 11 IRrecv irrecv(irPin); decode_results results; // —————̵...
Witam Mam problem z układem L293D ponieważ chciałem zrobić jeżdżącego robota i przy odległości od przeszkody poniżej 20cm powinien kierunek silnika się zmienić. program i połączenie działa ponieważ jako tako się porusza ale mam problem z zasilaniem. Podłączyłem do urządzenia zasilanie 16v na wyjściu z L293D jest 9v i nie wiem czemu nie chcą się obracać...
Witam. Buduję układ mający być sterowaniem w zdalnie sterowanym samochodzie. W skrócie: Sygnał z telefonu idzie do modułu bluetooth hc-06, arduino go odczytuje i daje napięcie i informację o prędkości do modułu l298n który napędza silnik. na podobnej zasadzie działa serwo. Całość zasilana jest z baterii 7,4v. Serwo jest podłączone do baterii przez regulator...
Cześć. Chcę sterować silnikiem krokowym 28byj-48, za pomocą josticka. Mam na myśli sam kierunek. Próbowałem sam coś wymyśleć lub znaleźć na internecie, ale bez przerwy kręci się w jedną stronę. Oto kod: #include <Stepper.h> #include <AxisJoystick.h> Stepper myStepper(8,9,10,11); void setup() { Serial.begin(9600) } void loop() { int xAxis=analogRead(A1);...
#include <avr/interrupt.h> #include <util/delay.h> #define BUZ PD4 #define wiecej (1<<PD1) //chowanie #define mniej (1<<PD0) //wysuwanie int main(void) { DDRD |= (1<<BUZ); DDRD |= (1<<PD0); DDRD |= (1<<PD1); PORTD = 0x00; PORTD |= (1<<BUZ);...
Dziękuje Dondu za odpowiedź, nie ukrywając to właśnie na Ciebie liczyłem :) Zrobiłem to nie za pomocą opóźnień lecz tak jak przystało za pomocą PWM, ale po kolei... Po xx nieudanej próbie zastanawiałem się czy problem nie leży po stronie aplikacji na smartfonie, nie mam niestety odpowiedniego konwertera abym mógł sobie podłączyć moduł BT do RS232 i...
Chodziło mi czy ma znaczenie kolejność podłączania tak jak w przypadku odbiornika RC - najpierw sterowanie, ustawienie przepustnicy na maxa a dopiero zasilanie. Mój kod jest następujący, czy to może działać? [syntax=c] #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB |= (1 << DDB3); OCR2 = 128; TCCR2 |= (1 <<...
Użyj biblioteki accelstepper, w nim jest przykład ProportionalControl, gdzie jest pokazane jak przełożyć odczyt analoga na pozycję, łatwo to zamienić na prędkość, bo akurat też jest użyta w przykładzie, a żeby miał się gdzie kręcić, to sobie dodaj warunek, że jak pozycja docelowa jest mniejsza od aktualnej o 100, to dodaj kolejne 100, wszystkie funkcje...
no cóż... niestety, nie jest to takie proste. najlepiej robić w kilku - jeden pisze kod źródłowy, inny zajmuje się muzyką, jeszcze inny dźwiękiem, jeszcze ktoś grafiką... uwierz mi, roboty jest naprawdę DUŻO. Przykład? zobacz poniżej, ten program jest w C++ i ma za zadanie TYLKO wyswietlić napis w kolorze czerwonym. --- #include <stdio.h> #include...
Witam Otóż rzecz polega na tym, że (prawdopodobnie) w programie odbiornika, w void loop, mam błędnie sformułowane instrukcje do komendy stopp. Problem jaki mam, to gdy pchnę joystick np. do przodu to gdy go puszczę, żeby powrócił do pozycji zero, to silniki kręcą się dalej w tym kierunku , którym był ostatnio wysyłany sygnał, tylko, że wolniej (tak...
Uzupełniłem bibliotekę do sterowania silnikiem o komentarze, mam nadzieję, że teraz będzie dokładnie wiadomo, o co mi chodzi. [syntax=c]#ifndef STEPPER_H_ #define STEPPER_H_ #define TURN 400 //ilosc krokow na obrot silnika #define MAX_DELAY 255 //maksymalna wartosc opoznienia miedzy krokami #define MIN_DELAY 5 //minimalna wartosc opoznienia miedzy krokami...
A nie można samemu napisać? Silnik krokowy może pracować w trybie "zwykłym" lub tzw. mikrokrokach. Poniżej kod który umożliwia sterowanie w obu trybach. Zmienną Z ustawiasz ile kroków ma wykonać silnik, delay decyduje o prędkości obrotowej silnika (im większa prędkość tym mniejsza wartosć delay (min 1)). Kiedyś zrobiłęm prace dyplomową - robota (kilka...
Witam, Arduino, serwo, czujnik ultradźwiękowy oraz shield L293D) zasilanego 9V baterią. Jaka może być tego przyczyna? Nic nie śmierdzi spalenizną, a dioda świeci, tak jak powinna. Jedynie co, to raz chyba przypadkowo wypięła mi się z shielda zworka. Może wtedy poleciało? Gdzie, dokładnie do którego portu jest podłączona ta 9-Voltowa bateria ? Czy do...
Czesc Mam taki problem że mam silnik krokowy i transoptor szczelinowy. Chce uzyskać efekt taki że silnik sie obraca dopóki atmega nie otrzyma przerwania zawnętrznego od transoptora (opadające zbocze). Kod źródłowy #include<avr/io.h> #include<avr/interrupt.h> #include<util/delay.h> volatile unsigned char flaga=0; void mryganie(void);...
https://obrazki.elektroda.pl/6586900500_... Witam. Otóż mam problem z podłączeniem/bardziej działaniem atmegi8 oraz sterownika L293D. Wszystko jak na obrazku, nie jestem dobry w tworzeniu schematów ale myśle że można się połapać. Silnik po prostu nie startuje natomiast układ okropnie się grzeje. To samo przy próbie zapalenia diody...
Chciałbym zrealizować sterowanie silnikiem krokowym, przy pomocy atmegi32. Schemat: http://obrazki.elektroda.pl/3368256400_1... Program do atmegi: [syntax=c] #include<avr/io.h> #define F_CPU 1000000 #include<util/delay.h> void main() { DDRA = 0; //ustawienie portu A jako wejściowego DDRB= 0xFF; //ustawienie portu B jako wyjściowego...
Witam serdecznie forumowiczów. Niestety jestem zmuszony poprosić państwa o pomoc, gdyż po spędzeniu połowy dnia na próbowaniu różnych możliwości i przeszukiwaniu informacji w głębi internetu, spełzłem na niczym. Próbuję sprawić, aby silnik od dysku kręcił się, sterując go ATMEGĄ32. Schemat podłączenia jaki wykonałem jest następujący (zastosowałem diody...
Zawiera tylko to void volumeMotorStop() { delay(100); digitalWrite(volumeUpPin, LOW); digitalWrite(volumeDownPin, LOW); } Dodano po 7 Tak to wygląda na oscyloskopie. Ta część kodu wyglada być poprawna, za wyjątkiem zbyt dlugiego 'delay' ; chociaż nie znam ukladu podłączeń do mostka... Niezależnie od tego, przedstawiony...
taki mały przykład... trochę bałaganiarski ale widać jak ogarnąć buttony na stronie www. [syntax=c] #include <pcf8574_esp.h> //#include <PCint.h> #include <U8g2lib.h> #include <U8x8lib.h> //#include <Wire.h> U8G2_SH1106_128X64_VCOMH0_1_HW_I2C u8g2(U8G2_R2 ,U8X8_PIN_NONE,SCL,SDA); TwoWire testWire; PCF857x pcf8574(0x20,&testWire);...
Witam. Po raz kolejny wracam do tematu przerwań: [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> volatile static uint16_t i; volatile static uint8_t k; // główna funkcja programu main() int main(void) { //**************************** SPRZĘTOWY PWM - 1 KANAŁ OC0 (PB3) ****************************************...
Witam, Czy ktoś może mi zmodyfikować tak mój program aby działał mi wyświetlacz LCD ? Chodzi tutaj o to że mam podłączony mały silnik krokowy oraz potencjometr a do tego jeszcze przyciski "start, stop, zmień kierunek obrotu". Wszystkie przyciski działają, potencjometr również, a teraz chciałbym aby zakres mojego potencjometru był wyświetlany na LCD...
WItam, mam problem na który nie mam pomysłu. Na ATMEGA8A robie sterowanie silnikiem krokowymw 3 pozycjach lewo, prawo i stop,i dziala zgodnie z oczekiwaniami. Nastepnie dolaczylem do INT0 wlacznik krańcowy zeby generowal przerwanie i cofal silnikiem wrazie wystapienia przerwania. I tu zaczely sie schody bo podciagam VCC pod INT0 zeby przerwanie generowalo...
Dzień dobry, potrzebuję pomocy z napisaniem programu w C do obsługi silnika krokowego bipolarnego za pomocą ATmega 32. Program z zajęć: #include <avr/io.h> #include <util/delay.h> #define PortSilnika PORTD unsigned char TabSiln https://obrazki.elektroda.pl/3536662400_... Program ma działać następującymi założeniami: –program...
1. Przycisk do zliczania obrotów silnika? Ile maksymalnie obrotów na minutę będzie miał ten silnik? 2. Piszesz, że miałeś już program, ale nie działał prawidłowo - może go pokaż + schemat Twojego układu. 1 - chodziło o to, że przycisk ma zmieniać stan licznika, następnie licznik będzie zmieniał wypełnienie PWM a tym samym napięcie będzie regulowane...
Witam, Postanowiłem usprawnić moje stare urządzonko i wpadłem na pomysł by zrobić to na arduino. Zakupiłem platformę MEGA256, OLED 0,96"I2c, parę przycisków kabelków i rozpocząłem prace. Projekt ma za zadanie poruszać trzema silnikami krokowymi (A4988) po wybraniu z menu na oled odpowiedniego zadania. Zadań do wyboru jest osiem, każde z nich steruje...
Witam mam dwa oddzielne programy w C. Jeden za pomocą przycisków steruję silnikiem(prawo lewo) Oto ten program: #include "C:\WinAvr\avr\include\avr\io.h... #define B4_ON PORTB |= 0x10 #define B4_OFF PORTB &= 0xEF #define B5_ON PORTB |= 0x20 #define B5_OFF PORTB &= 0xDF #define OSC 4 void waitms(unsigned char x) {// definicja...
Mam program do sterowania silnikami (autkiem) przez układ L293D. Pobiera napięcie z joystica 0-3,3 V i w zależności tego kieruje silnikiem prawo-lewo, przód-tył i wysyła PWM do nich. Wszystko działa prócz portu E22. Ciągle jest tam zero. Gdy wartość X jest mniejsza od 1400 powinno być tam "1". W debugerze wskakuje do tego warunku ale jedynka się nie...
Witam. Napisałem prosty program do sterowania silnikiem. Mostek L293D mam podpięty pod wyjścia PD0 i PD1, natomiast przycisk zwierający z masą do PC0. Idea działa ma być taka: Silnik kręci się cały czas w jedną stronę, natomiast p przyciśnięciu przycisku kręci się przez określony czas w drugą stronę. Problem wydaje się banalny, niestety przy zastosowaniu...
Witam. Zamiast bawić się w NE 555 itp. , kup sobie najtańsze arduino uno , przekażnik dedykowany do niego , oraz rezystor 10K , wgraj ten prosty programik , na testach działa według Twoich zaleceń. #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3f,2,1,0,4,5,6,7,3,POSITIVE); signed short minuty, sekundy; char liniaczasu[16]; int guzik =...
Trochę przerobiłem jak Kolega podpowiadał. Przeniosłem licznik do oddzielnej funkcji wywoływanej przerwaniem, zmieniłem nazwy zmiennych, ale w innych miejscach coś musiałem skopać bo licznik "pulsuje" a silnik nie rusza. Składnia przerwania jest w/g instrukcji to raczej tak powinno być. Nie mam pojęcia jak to rozgryźć. [syntax=c]#include <LiquidCrystal.h>...
Całość będzie połączona według schematu z załącznika. Poczytałem to co mi podesłałeś jednak nie mam pojęcia jakie rejestry jak ustawić. Chce Sterować pwm prędkością silników (wejściem 1-2EN oraz 3-4EN) natomiast kierunek ma być określany przez odpowiednie stany 1A i 2A oraz 3A i 4A). Oto co narazie napisałem niewiele ale nie mam pewności czy nawet to...
Oczywiście, że slave musi mieć adres. Z Arduino można tak (przykład znaleziony w necie): [syntax=c] #include <Wire.h> [syntax=c]void setup() { Wire.begin(2); // join i2c bus with address #2 Wire.onRequest(requestEvent); // register event Serial.begin(9600); // start serial for output } void loop() { delay(100); } // function that executes whenever...
AI: Czy możesz podać fragmenty kodu, które używasz do inicjalizacji i sterowania PWM w głównym programie? #include <ESP32Servo.h> // inicjalizacja biblioteki ESP32PWM M1_PWM; // inicjalizacja pwm silnika 1 ESP32PWM M2_PWM; // inicjalizacja pwm silnika 2 ESP32PWM S1; // inicjalizacja pwm serwa void setup() { ESP32PWM::allocateTimer(0); ESP32PWM::allocateTimer(1);...
Do włączenia silnika krokowego PM35L http://www.eminebea.com/content/html/en/... http://www.eminebea.com/content/html/en/... na ATmega88 z ULN2003 napisałem taki uproszczony kod #define F_CPU 1000000UL #include<avr/io.h> #include <util/delay.h> #define...
Cześć. Napisałem sterownik silnika krokowego z wykorzstaniem DMA i TIM1. Sygnał przyspieszam z wykorzystaniem tzw. Rampy. Czasy sobie wyliczam i ładuje do tablicy DMA i przekazuje z niej do wartości TIM PERIOD. Program działa jak należy, ale martwi mnie to dlaczego Timer zaczyna pracować dopiero po 1 minucie ?!?. [syntax=c]#include "stm32f10x.h" #include...
Witam, chcę wysterować dwa silniki krokowe, w necie znalazłem program sterujący jednym silnikiem i podjąłem się modernizacji go. Efekt jest taki że oba silniki pracują, jednak wykonują dokładnie taki sam obrót. Program przerabiałem bardziej na "chłopski rozum" bo jeszcze jestem laikiem jeśli chodzi o programowanie, dlatego może wyglądać dość chaotycznie,...
W takim bądź razie do czego służy ten sterownik skoro nie działa? Z noty katalogowej: Applications include relay drivers, hammer drivers, lamp drivers, display drivers (LED and gas discharge), line drivers, and logic buffers. Ani słowa o silnikach krokowych. Ja chce tylko wstępnie żeby się silnik obracal na tym układzie, do tego nie jest wymagamy mostek...
Na serwie SG90 będzie łatwiej https://obrazki.elektroda.pl/7603416900_... https://filmy.elektroda.pl/75_1678529029...
Zacznij od kursu Arduino: Taka genialna odpowiedź powinna byc ' wynadgrodzona ' przez cerberusa tej grupy w ilości co naimniej 100 punktów (!) Byc może autor przeoczył, bądź celowo pominął załączenie kodu, który jest tu wyjatkowo prosty i zawiera tylko jedną linię . Oto cały kod do wpisania w arduino: należy dokonac odpowiedniej konfiguracji parametrów...
#include <avr/io.h> #define F_CPU 16000000L #include <util/delay.h> #include <float.h> #include <inttypes.h> #include <math.h> #include <stdio.h> #define stop1 PORTA|=(0<<PA3); PORTA|=(0<<PA4) #define lewo1 PORTA|=(0<<PA3); PORTA|=(1<<PA4) #define prawo1 PORTA|=(0<<PA4);...
Tak jak pisałeś jedno koło przód jedno tył działa. Jeśli chodzi o opóźnienie to było dobre tylko problem polegał na tym, że opóźniało to oba koła jednocześnie. Wolniej jechał cały do przodu. Jeszcze jedna kwestia, mianowicie czemu on tak przerywa, nie jedzie płynnie? Stosowałem kod: [syntax=c]#include <Stepper.h> const int stepsPerRevolution =...
jak zwiększyć prędkość obracania się silnika ? zmieniając tranzystory o wiekszym pradzie czy ktores elementy mostka H np. rezystory ! program sterujący: #include "51xD2.h" #define button0 P3_0 #define button1 P3_1 #define button2 P3_2 main() { while(1) { if ( button0==0 ) { P2_0=0; P2_1=1; } if ( button1==0 ) { P2_0=1; P2_1=0; } if ( button2==0 ) {...
Chcę wysterować silnik krokowy 6 przewodowy. Jest to niewielki silnik o napięciu 3,5V i prądzie 0,95A. Sterowanie robię poprzez Atmega16, a następnie układ ULN2803. Schemat wziąłem ze strony: http://robotika.yweb.sk/skola/Krokove%20... chociaż jest wiele podobnych schematów. Oczywiście...
Witam. ja mam też problem z silnikiem krokowym. Wymontowałem go z dysku twardego(więc może to jest raczej DLDC ale nie jestem pewien). W każdym razie zrobiłem układ jak na schemacie , na: - Atmega8 - BS170 - rezystorki i to wszystko. I moim zdaniem (czyli wątpliwe;) ) to powinno działać. Pobniżej przedstawiam kod programu . Może coś robie źle :( , już...
[syntax=cpp]#include <iostream.h> #include <conio.h> #include <stdio.h> #include <dos.h> #include <bios.h> #include <math.h> #include <string.h> // Predkosc transmisji #define SPEED_110 0x00 //definiowanie odpowiedniej prędkości – zamiast 0x00 //bedziemy pisac SPEED_150 #define SPEED_150 0x20 #define SPEED_300...
Witam. Od razu muszę się przyznać, że jestem początkującym w tej dziedzinie, ale nie będę pisał dlaczego i po co postanowiłem zbudować prostego robota... nie w tym rzecz. Otóż mam kilka problemów. Zakupiłem mikroprocesor ATMega8-16PU i układ scalony L293D , mam również dwa silniczki takie jak od cd-romów. Mikroprocesor zaprogramowałem najzwyklej, tak...
Rozumie, że nie obawiasz się o silniki i nie będziesz nimi kręcił na maksymalnym wypełnieniu PWM przez dłuższy czas? A to jakiś problem? Nie po to wymyślono PWM żeby dowolnie z niego korzystać? Siedze właśnie już cały dzień na sterowaniem PWM i nie moge rozwiązać pewnego problemu. Otóż mam bardzo zbliżony schemat do kolegi. Różnice są następujące:...
Kalibrację wykonuje się przy użyciu wbudowanego wyświetlacza. Jest ona kilkupoziomowa. Level 0 These calibration functions are designed for use by the operator during normal functioning of the vehicle. They use the membrane keys 1, 2 and 3. The 0 level calibrations include the following: forward speed, wheel slip ratio, engine speed, PTO speed, area...
No do Twego robocika oczywiście chylę czoła;) Parę rozwiązań na pewno się przyda;) Wracając do sprawy, znalazłem myszkę i wymontowałem kółko wraz z napędem. Czy transoptor, który zastosowałeś w prezentowanym robocie jest szczelinowy? Myślałem, że jego nazwa pochodzi z wyglądu: http://www.google.pl/imgres?hl=pl&bi...
Witam. Chciałbym zrobić sterownik do takiego silnika , wydaje mi się że jest to silnik BLDC (prądu stałego z magnesami trwałymi) jednak można go sterować jak zwykły krokowy(bo już próbowałem). Jednak mam problem układ który poniżej przedstawiam nie chce ziałać poprawnie tzn silnik się nie kręci bez wyraźnego powodu. Czy mógłby ktoś wyjaśnić mi dlaczego...
Witam. Czy mógłby mi ktoś powiedzieć w jaki sposób można sterować silnikiem DC (programowo) na Timerze1. Mam programik, który powinien to robić, lecz nie działa. Dlaczego nie wiem. Dołączam poniżej kod. Jeśli chodzi o załączanie to zbudowałem prosty układzik na tranzystorze załączającym oraz diode do zabezpieczenia przed przepięciami. Interesuje mnie...
To jest tester wtryskiwaczy a nie sterownik silnika. Dlatego kąt wtrysku, jego początek i koniec nie ma znaczenia większego. Przy takim założeniu można użyć biblioteki TimerOne w celu uzyskania odpowiedniego sygnału PWM. Zgodnie z informacjami podanymi w pierwszym poście, inicjacja timer'a mogłaby wyglądać następująco: [syntax=c]#include <TimerOne.h>...
Trochę poprawiłem. Zostawiłem tylko jeden timer. To chyba sporo zmieniło w działaniu. #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include "HD44780.h"//radzio #include "TWI.h"//radzio #define LICZBA_KANALOW 4 //cztery kanały- tu można zwiększyć ilość kanałów #define...
Witam buduje układ dzięki któremu będę mógł sterować silnikiem krokowym za pomocą potencjometru. Wykorzystałem przetwornik A/D. Najpierw sprawdzany jest stan rejestru ADCW a jego wartość zapisywana jest do zmiennej value w postaci dziesiętnej. Następnie program sprawdza o ile zwiększyło się value, oblicza różnicę i zapisuje do zmiennej b jako wartość...
A czy drugi warunek jest potrzebny ? Tzn. ten jeżeli światło jest załączone, zrobiłem tylko na warunku "if (garaz==false)" i światło zostaje wyłączone jednak bez ustalonej zwłoki, co dalej robię źle ? [syntax=c]#include <SoftwareSerial.h> SoftwareSerial Digit(10,11); // RX, TX byte DaneBT; ///////SILNIKI GARAŻU //////////////////////////////////...
Jak narazie mam tyle
Znowu post pod postem- ale po długim grzebaniu w książkach i w sieci- a zwłaszcza dzięki pomocy Dr_Vee działa w C. #include <avr/interrupt.h> #include "HD44780.h" #include <stdint.h> int main(void) { // ustawianie rejestrów sei(); DDRC=0; PORTC=255; DDRB=255; TCCR0A=0; TCCR0B|=(_BV(CS00)|_BV(C...
Mam takie cos: #define cbi(sfr,bit)(_SFR_BYTE(s... #define sbi(sfr,bit)(_SFR_BYTE(s... #include<avr/interrupt.h> #include<avr/io.h> char krok; union" { unsigned int TCN1; unsigned char TCN1c[2]; }volatile TCN1u; unsigned int...
Witam serdecznie. Chciałem poprosić o pomoc w tym prostym projekcie. Na płytce prototypowej podłączyłem do µC układ L293D, do niego silnik krokowy z czterema wyprowadzeniami(silnik z drukarki). Wszystko podłączyłem wg noty katalogowej drivera. Mój problem polega na tym, że po odpaleniu programu silnik wykonuje krok w przód i krok w tył. Nic poza...
Gdy byś sciągnoł biblioteke ntport to ponizej daje ci schemat i kod do sterowania silnikiem krokowym: #include "iostream" #include "c:\Program Files\NTPort library\ntport.h"//biblioteka ntport #include <time.h> using namespace std; //funkcja sllep void sleep(unsigned int mseconds) { clock_t goal = mseconds...
Witam, chciałbym zrobić robocika z silniczkami DC sterowane poprzez PWM. Niestety nie bardzo mam pojęcie jak to przerzucić na kod. Napisałem program, ale nie jestem pewny czy jest poprawny i czy moje myślenie w ogóle jest poprawne. Poniżej zamieszczam kod: [syntax=c] #define F_CPU 1000000L #include <avr/io.h> #define PRZOD 0x02 // (1<<PA1)...
Witam ponownie Pojawił się mały problem, po podłączeniu silnika do przekaźnika - tak jak na rysunku powyżej -przekaźnik "przeskakuje" :( nie wiem co jest tego przyczyną. Kod programu #include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); void setup() { pinMode(8, OUTPUT); digitalWrite(8,HIGH); pinMode(9,...
include hd44780 include winavr 18b20 include
folia drzwi czujnik obrót skrzynia automat shader model
17mb60 firmware 17mb60 firmware
Wentylator Simon nie reaguje na pilota - diagnostyka Podłączenie baluna 75 Ohm do kabla RG-58 dla anteny pętlowej