Skocz do zawartości

Zagwozdka z funkcją w samochodziku Bluetooth (Arduino UNO)


Pomocna odpowiedź

@farmaceuta

#include <LedControl.h>

int DIN = A0;
int CS = A1;
int CLK = A2;

char data;

unsigned long czas;
unsigned long zapamietanyCzas;

bool flaga = 0;
byte zmienna = 0;
uint32_t last = 0;


LedControl lc=LedControl(DIN, CLK, CS, 0);

byte smile[8] = {0x00,0x26,0x46,0x40,0x40,0x46,0x26,0x00};
byte half[8] = {0x00,0x24,0x44,0x40,0x40,0x44,0x24,0x00};
byte all[8] = {0x00,0x20,0x40,0x40,0x40,0x40,0x20,0x00};

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(12, OUTPUT);
  analogWrite(9, 175);
  analogWrite(10, 175);

  lc.shutdown(0, false);
  lc.setIntensity(0,15);
  lc.clearDisplay(0);

  printByte(smile);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(Serial.available() > 0) {
    data = Serial.read();
    if(data == 'F') {
      digitalWrite(3, HIGH);
      digitalWrite(6, HIGH);
    } else if(data == 'B') {
      digitalWrite(4, HIGH);
      digitalWrite(7, HIGH);
    } else if(data == 'L') {
      digitalWrite(4, HIGH);
      digitalWrite(6, HIGH);
    } else if(data == 'R') {
      digitalWrite(3, HIGH);
      digitalWrite(7, HIGH);
    } else if(data == 'S') {
      digitalWrite(3, LOW);
      digitalWrite(4, LOW);
      digitalWrite(6, LOW);
      digitalWrite(7, LOW);
    } else if(data == 'V') {
      digitalWrite(12, HIGH);
    } else if(data == 'v') {
      digitalWrite(12, LOW);
    }
  }

  czas = millis();

  if((czas - zapamietanyCzas) >= 4000UL) {
    zapamietanyCzas = czas;
    flaga = 1;
  }

  if(flaga == 1)  {
    if (millis() - last > 100UL) {
      zmienna++;
      last = millis();
    }
  switch (zmienna) {
    case 1:
      printByte(half);
    break;
    case 2:
      printByte(all);
    break;
    case 3:
      printByte(half);
    break;
    case 4:
      printByte(smile);
    break;
    case 5:
      flaga = 0;
      zmienna = 0;
    break;
  }

}



void printByte(byte character[]) {
  int i;
  for(i=0;i<8;i++) {
    lc.setRow(0,i,character[i]);
  }
}

 

(edytowany)
4 minuty temu, Mikolajkie napisał:

@farmaceuta Jakim miganiem? Chodzi o to, że wyświetlacz wygląda, jakby diody na nim szybko migały?

Twój kod że swoich ma działać 👍 

Co do migania chodzi mi o to czy nie odświeża się szybko....poprostu czy nie miga szybko podczas tego mrugania oczami?

Edytowano przez farmaceuta

@farmaceuta Więc dziękuję za pomoc, będę śmiało pisał, jakby coś się zepsuło. 😊

 

Jeśli chodzi o ten busyPin to już znalazłem odpowiedź. Aktualnie jest w samochodziku usterka, ale nie leży po stronie software'u, tylko po stronie mechanicznej (kółko się urwało i muszę kropelkę znaleźć 😂).

  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...