• 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
Atiny85 Prośba o pomoc (~techniczne pytanie )
#1
cześć

Stałem się posiadaczem digispark attiny85 nie mogłem go programować w adurino ide (zachowywał się dziwnie przy łączeniu patrząc z perspektywy czasu może nie umiałem go obsługiwać ), a więc wgrałem botloadera zrobiłem to tak   FILMIK NA YT cały proce przeszedł poprawnie ...

/folderpath/avrdude -C /folderpath/avrdude.conf -v -P COM3 -b 19200 -c avrisp -p attiny85 -Uflash:w:/folderpath/t85_default.hex:i -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m

Mój problem jest następujący wgrywam programik gotowiec Bounce2 jest to led włączany przez TACswitch kombinuje wejściami i wyjsciami przełączając diodę i przełącznik ....

#define BUTTON_PIN 4 //ok 3 2 0 // no 1 4 5
#define LED_PIN 1 //ok 4 3 2 1 0 //no 5

Jako wejścia mogę użyć pin 3 , 2 , 0
Jako wyjścia mogę użyć pin 4 , 3 , 2 , 1 , 0
OPISY Z PŁYTKI DIGISPARK 
ile w końcu ta płytka ma wejść i wyjść, bo na gogle grafiki to już wszystkie kombinacje widziałem podobno powinny być 4 piny wejścia w szczególności pin4, na którym mi bardzo zależy
pytam praktyków ... bo sam dziś poległem może chodzi o konfiguracje botloadera ?
 
Odpowiedź
#2
Ma 5 uwzględniając "0" cyfrowych nie wiem co masz pod pojęciem wejscia 3,2,0 wyjscia,4,3,2,1. Używasz PWM? czy czegoś innego?
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#3
Cześć

1) Do testów wejścia podłączam switch pod p0 / p2 / p3 i tylko te wejścia zapalają LEda znajdującego się na np. p4 naciśnięciu
2) Nie mogę "umieścić" switch na p4 lub p1 i zapalić leda znajdującego się na p3 po naciśnięciu . Po wczytaniu programu led zapali się sam
3) nie ma problemu z pinMode(BUTTON_PIN,INPUT_PULLUP); / nie ma problemu z programem / nie ma problemu z połączeniem.
4) po wgraniu z komputera programu zasilam digisparka klona z power banku (aby usb nie miało wpływu na program ) powerbank ma prawidłowy poziom napięcia  ...

Kod:
#include <Bounce2.h>
#define BUTTON_PIN 4  //ok 3 2 0 // no 1 4 5    //TU JEST PROBLEM
#define LED_PIN 1     //ok 4 3 2 1 0 //no 5     //TU JEST PROBLEM
Bounce debouncer = Bounce();

void setup()
{
  pinMode(BUTTON_PIN,INPUT_PULLUP);
  debouncer.attach(BUTTON_PIN);
  debouncer.interval(5);
  pinMode(LED_PIN,OUTPUT);
}
void loop()
{
  debouncer.update();
  int value = debouncer.read();
  if ( value == LOW ) {digitalWrite(LED_PIN, HIGH );}
  else {digitalWrite(LED_PIN, LOW );
  }
}

2) Nie mogę "umieścić" switch na p4  i zapalić leda znajdującego się na p1 po naciśnięciu . Po wczytaniu programu led zapali się sam
 
Odpowiedź
#4
A sprawdź miernikiem czy działa funka pullup na pinie 4

Choć specyfikacja mówi że
1.1.3 Port B (PB5 : PB0)
Port B is a 6-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port B output buffers
have symmetrical drive characteristics with both high sink and source capability. As inputs, Port B pins that are
externally pulled low will source current if the pull-up resistors are activated. The Port B pins are tri-stated when a
reset condition becomes active, even if the clock is not running.

Kiedyś czytałem że rezystory podciągające są dość spore i mogą pojawić się problemy. I trzeba zewnętrzne stosować..
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#5
Cześć

Jest to Paradoks ...  Twoja informacja jest celna dla mnie ta sytuacja jest nie zrozumiała, nie logiczna ale jestem laikiem . Wszystko trzeba sprawdzać testować taki zaułek potrafi namieszać kod poniżej obrazuje rozwiązanie problemu Dioda świeci  Cool

Kod:
int  PinSwitch3 = 3;     
int  PinSwitch4 = 4; 
int  PinLed = 1;        
void setup() {
  pinMode(PinSwitch3, INPUT_PULLUP);
  pinMode(PinSwitch4, INPUT);
  pinMode(PinLed, OUTPUT);
}

void loop() {

  int sensorVal3 = digitalRead(PinSwitch3);
  int sensorVal4 = digitalRead(PinSwitch4);
if (sensorVal3 == HIGH) {
    digitalWrite(PinLed, LOW);
  } else {
    digitalWrite(PinLed, HIGH);
  }
if (sensorVal4 == LOW) {
    digitalWrite(PinLed, LOW);
  } else {
    digitalWrite(PinLed, HIGH);
  }
}
 
Odpowiedź
#6
Chcesz w pełni wykorzystać Attiny85 to kup sobie sam uC. Jak używasz digispark to ściągnij sobie schemat i obejrzyj - wystarczy w Google wpisać "digispark attiny85 schematic". Normalnie Attiny85 ma 8 pinów, dwa to zasilanie, jeden RST, do wykorzystania zostaje 5. Na digispark 2 są podłączone do USB, jeden do LED - zostają 2. Wystarczy usunąć kilka rezystorów z płytki i z powrotem będziesz miał 5 (6 jeśli zrezygnujesz z ponownego programowania ISP i ustawisz w ostatecznym programie RST jako pin I/O).
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości