Kód: Vybrat vše
unsigned int angley_ui;
Kód: Vybrat vše
angley_ui = angley *100;
num1 = (angley_ui/1)%10;
num2 = (angley_ui/10)%10;
num3 = (angley_ui/100)%10;
num4 = (angley_ui/1000)%10;
digity pak jsou XX.XX 43.21
Kód: Vybrat vše
unsigned int angley_ui;
Kód: Vybrat vše
angley_ui = angley *100;
num1 = (angley_ui/1)%10;
num2 = (angley_ui/10)%10;
num3 = (angley_ui/100)%10;
num4 = (angley_ui/1000)%10;
Kód: Vybrat vše
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8);
const byte addresses[][6] = {"00001", "00002"};
float angley;
const int digitPins[4] = {
4,5,6,7}; //4 common anode pins of the display
const int clockPin = 10; //74HC595 Pin 11
const int latchPin = 9; //74HC595 Pin 12
const int dataPin = 6; //74HC595 Pin 14
const byte digit[10] = //seven segment digits in bits
{
B00111111, //0
B00000110, //1
B01011011, //2
B01001111, //3
B01100110, //4
B01101101, //5
B01111101, //6
B00000111, //7
B01111111, //8
B01101111 //9
};
int digitBuffer[4] = {
0};
int digitScan = 0, flag=0, soft_scaler = 0;
;
void setup(){
for(int i=0;i<4;i++)
{
pinMode(digitPins[i],OUTPUT);
}
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
//writes the temperature on display
void updateDisp(){
for(byte j=0; j<4; j++)
digitalWrite(digitPins[j], LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, B11111111);
digitalWrite(latchPin, HIGH);
delayMicroseconds(100);
digitalWrite(digitPins[digitScan], HIGH);
digitalWrite(latchPin, LOW);
if(digitScan==2)
shiftOut(dataPin, clockPin, MSBFIRST, ~(digit[digitBuffer[digitScan]] | B10000000)); //print the decimal point on the 3rd digit
else
shiftOut(dataPin, clockPin, MSBFIRST, ~digit[digitBuffer[digitScan]]);
digitalWrite(latchPin, HIGH);
digitScan++;
if(digitScan>3) digitScan=0;
}
void loop(){
angley = int(angley*100);
digitBuffer[3] = int(angley)/1000;
digitBuffer[2] = (int(angley)%1000)/100;
digitBuffer[1] = (int(angley)%100)/10;
digitBuffer[0] = (int(angley)%100)%10;
updateDisp();
delay(2);
}
Ale to by mělo být dobře ne ? pokud angley_ui =2684 tak angley=26,84
Ale v jednom příspěvku jsi psala že display máš vyzkoušený, že ti funguje
Kód: Vybrat vše
if (radio.available()){
radio.read(&angley, sizeof(angley));
//delay(100*sizeof(angley));
Serial.println(angley);
num1 = (angley/1)%10;
num2 = (angley/10)%10;
num3 = (angley/100)%10;
num4 = (angley/1000)%10;
} //asi chybí
Kód: Vybrat vše
delay(5); asi bych taky zrušil
radio.startListening(); dal bych do SETUP
Jak chceš, já bych postupoval jinak.
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů