Skocz do zawartości
xien

Własne arduino i problem z zasilaniem

Pomocna odpowiedź

Napisano (edytowany)

Hej, zbudowałem sobie takie samodzielne Arduino w oparciu o ATmega328p, jako mój programator służy arduino, z jego pomocą wgrałem bootloader na wyżej wymienioną atmege. I pojawił się problem gdy wgrywam za pomocą programatora(arduino as isp) program(miganie diodą) i podpinam zewnętrzne zasilanie, odpinam programator wszystko działa okej, ale gdy wgrałem sobie drugi program(sterowanie serwomechanizmem z pomocą modułu bluetooth HC-05) to jeśli jestem na zasilaniu z programatora(arduino) to program działa, natomiast jeśli odepnę i podłącze zewnętrzne zasilanie 5V to wtedy nie działa, (chyba) układ jest zasilony bo zapala się dioda z funkcji setup(), ale to co dzieje się w loop() tak jakby już nie działało bo nie ma mrugnięcia diodą a więc tym samym i sam serwomechanizm nie działa. Będę wdzięczny za wszystkie pomysły które mogą pomóc rozwiązać problem. Poniżej fragment kodu gdyby był potrzebny. Dodałem również schemat rozważałem rozdzielenie zasilania atmegi 5V i serwomechanizmy odzielnie na 6V(docelowo 4 serwomechanizmy), ale jeszcze nie wiem jak to się do końca łączy czy masy zasilania razem czy osobno czy w jakiś inny sposób(fajnie jakby ktoś się również tą wiedzą podzielił) ale na ten moment jest na jednym zasilaniu 5V całość atmega jak i 1 serwomechanizm. Na rx/tx dałem konwerter poziomów logicznych 5V/3.3V i jest też stabilizator żeby zrobić 3.3V. JP2 na schemacie to goldpiny na podpięcie serwa.

#include <Servo.h>
#include <SoftwareSerial.h>

Servo s1;

int bluetoothTx = 11;
int bluetoothRx = 10;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
unsigned int servopos = 0;
unsigned int servopos1 = 0;
unsigned int servopos2 = 0;
unsigned int realservo = 0;

void setup() {
 s1.attach(9);
 bluetooth.begin(9600);
 pinMode(8, OUTPUT);
 digitalWrite(8, HIGH); 
}

void loop() {
if(bluetooth.available() >= 2)
 {
   digitalWrite(8, LOW);
   delay(700);
   digitalWrite(8, HIGH);
   servopos1 = bluetooth.read();
   
   servopos2 = bluetooth.read();
   realservo = servopos1 + (servopos2*256);
   Serial.print("Realservo - odczyt: ");
   Serial.println(realservo);

    if(realservo >=0 && realservo <=180)
   {
     digitalWrite(8, LOW);
     delay(300);
     digitalWrite(8, HIGH);
     digitalWrite(8, LOW);
     delay(300);
     
     digitalWrite(8, HIGH);
     s1.write(realservo);

     Serial.print("Pozycja serwo s1 ");
     Serial.println(realservo);
     delay(200);
   }
 }

 

schemat.jpg

Edytowano przez xien
Dodano schemat + aktualizacja opisu

Udostępnij ten post


Link to post
Share on other sites

Pewnie za mało wydajne zasilanie nie radzi sobie z zasileniem serwa.

Udostępnij ten post


Link to post
Share on other sites

Przeniosłem układ na diody żeby sprawdzić czy faktycznie zasilanie nie wyrabia i okazało się, że zachowuje się tak samo. Kiedy arduino było podpięte jako isp
Arduino | ATmega
   D10  -> RESET
   D11  -> MOSI
   D12  -> MISO
   D13  -> SCK
to zauważyłem że po odpięciu MOSI, MISO, SCK układ działał ale przy odpięciu reset zachowywał się tak jak opisywałem czyli tak jakby działało tylko to co jest w setup(), być może to jest problemem ale czym to może być spowodowane?

Udostępnij ten post


Link to post
Share on other sites

No to pewnie moduł bluetooth nie jest "available" z powodu mało wydajnego zasilania.

Udostępnij ten post


Link to post
Share on other sites

A w tym twoim Arduino podciągnąłeś reset do 5V za pomocą rezystora 10K?

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...