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, 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.
Kod:
#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;
int zmiana = 10;
int pozycja = 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);
}
}