Witam,
Mam problem z Portami Arduino - Seeed XIAO nRF52840, a dokładniej chodzi o to że nic nie pojawia się na Serial Monitor ani na wyjściu, ogólnie nic się nie dzieje jedynie powiadomienie że program został wgrany.
Program wcześniej normalnie działał ale za którymś razem jak go wgrałem Arduino i mikrokontroler XIAO przestały się komunikować, czy znacie powód lub/i ewentualne rozwiązanie?
Kod programu:
#include <Wire.h>
#include "Adafruit_MPR121.h"
const int pinIn1 = 9; // Pin do sterowania kierunkiem obrotów silnika (np. w prawo)
const int pinIn2 = 10;
const int delayTime = 2700;
Adafruit_MPR121 cap = Adafruit_MPR121();
uint8_t currtouched = 0;
uint8_t lasttouched = 0;
uint8_t codeIndex = 0;
const int numElectrodes = 5;
int enteredCode[4];
int correctCode[4] = {4, 4, 4, 4};
void setup() {
Serial.begin(9600);
digitalWrite(pinIn1, LOW);
digitalWrite(pinIn2, LOW);
pinMode(pinIn1, OUTPUT);
pinMode(pinIn2, OUTPUT);
if (!cap.begin(0x5A)) {
Serial.println("MPR121 blad (brak podlaczenia)");
while (1);
}
Serial.println("MPR121 podlaczony");
}
void loop() {
currtouched = cap.touched();
for (uint8_t i = 0; i < numElectrodes; i++) {
if ((currtouched & (1 << i)) && !(lasttouched & (1 << i))) {
Serial.print("Electrode ");
Serial.println(i);
delay(1000);
// Update entered code if appropriate (assuming keypad functionality)
if (codeIndex < 4) {
enteredCode[codeIndex] = i;
codeIndex++;
} else {
Serial.println("Code entry limit reached.");
if (checkCode()) {
Serial.println("Dostep udzielony");
silnik();
} else {
Serial.println("Blad (zle haslo lub/i brak schematu w bazie)");
// Reset code entry or provide feedback
codeIndex = 0;
memset(enteredCode, 0, sizeof(enteredCode));
}
}
}
}
}
void silnik(){
Serial.println("Aktywacja silnika");
// Kręcenie w prawo
digitalWrite(pinIn1, HIGH);
digitalWrite(pinIn2, LOW);
delay(delayTime);
// Zatrzymanie
digitalWrite(pinIn1, LOW);
digitalWrite(pinIn2, LOW);
delay(delayTime*5); // Pauza 10 sekund
Serial.println("Kręcenie w lewo");
digitalWrite(pinIn1, LOW);
digitalWrite(pinIn2, HIGH);
delay(delayTime);
// Zatrzymanie
digitalWrite(pinIn1, LOW);
digitalWrite(pinIn2, LOW);
delay(delayTime); // Pauza 10 sekund
}
bool checkCode() {
for (int i = 0; i < 4; i++) {
if (enteredCode != correctCode[i]) {
return false;
}
}
return true;
}[/i]
Mam problem z Portami Arduino - Seeed XIAO nRF52840, a dokładniej chodzi o to że nic nie pojawia się na Serial Monitor ani na wyjściu, ogólnie nic się nie dzieje jedynie powiadomienie że program został wgrany.
Program wcześniej normalnie działał ale za którymś razem jak go wgrałem Arduino i mikrokontroler XIAO przestały się komunikować, czy znacie powód lub/i ewentualne rozwiązanie?
Kod programu:
#include <Wire.h>
#include "Adafruit_MPR121.h"
const int pinIn1 = 9; // Pin do sterowania kierunkiem obrotów silnika (np. w prawo)
const int pinIn2 = 10;
const int delayTime = 2700;
Adafruit_MPR121 cap = Adafruit_MPR121();
uint8_t currtouched = 0;
uint8_t lasttouched = 0;
uint8_t codeIndex = 0;
const int numElectrodes = 5;
int enteredCode[4];
int correctCode[4] = {4, 4, 4, 4};
void setup() {
Serial.begin(9600);
digitalWrite(pinIn1, LOW);
digitalWrite(pinIn2, LOW);
pinMode(pinIn1, OUTPUT);
pinMode(pinIn2, OUTPUT);
if (!cap.begin(0x5A)) {
Serial.println("MPR121 blad (brak podlaczenia)");
while (1);
}
Serial.println("MPR121 podlaczony");
}
void loop() {
currtouched = cap.touched();
for (uint8_t i = 0; i < numElectrodes; i++) {
if ((currtouched & (1 << i)) && !(lasttouched & (1 << i))) {
Serial.print("Electrode ");
Serial.println(i);
delay(1000);
// Update entered code if appropriate (assuming keypad functionality)
if (codeIndex < 4) {
enteredCode[codeIndex] = i;
codeIndex++;
} else {
Serial.println("Code entry limit reached.");
if (checkCode()) {
Serial.println("Dostep udzielony");
silnik();
} else {
Serial.println("Blad (zle haslo lub/i brak schematu w bazie)");
// Reset code entry or provide feedback
codeIndex = 0;
memset(enteredCode, 0, sizeof(enteredCode));
}
}
}
}
}
void silnik(){
Serial.println("Aktywacja silnika");
// Kręcenie w prawo
digitalWrite(pinIn1, HIGH);
digitalWrite(pinIn2, LOW);
delay(delayTime);
// Zatrzymanie
digitalWrite(pinIn1, LOW);
digitalWrite(pinIn2, LOW);
delay(delayTime*5); // Pauza 10 sekund
Serial.println("Kręcenie w lewo");
digitalWrite(pinIn1, LOW);
digitalWrite(pinIn2, HIGH);
delay(delayTime);
// Zatrzymanie
digitalWrite(pinIn1, LOW);
digitalWrite(pinIn2, LOW);
delay(delayTime); // Pauza 10 sekund
}
bool checkCode() {
for (int i = 0; i < 4; i++) {
if (enteredCode != correctCode[i]) {
return false;
}
}
return true;
}[/i]