Ви не увійшли.
я зделал на ардуино, 7-сегменте (на платке для уменшения виводов), и ик пульте.
я нажимаю на пульте кнопку с цифрой и цифра висвечиваетса.
я здела штоб нажал а цифри увеличивались или уменшались от текущего, я например держу ево а оно каждие 300 милисекунди увеличюютса или уменшаютса.
и еще есть случайное число.
а мне еще надо штоб я нажал а оно как слайди накомпе, но я должен нажать раз а оно пройти от 0 до 9 каждие 300 милисекунд.
вот скечь робочий. но неработает то што мне нужно.
вот фото
http://forum.arduino.ua/img/members/1554/IMG_20170527_134154.jpeg
#include "IRremote.h"
IRrecv irrecv(2);
decode_results results;
#define DATA_PIN 13 // пин данных (англ. data)
#define LATCH_PIN 12 // пин строба (англ. latch)
#define CLOCK_PIN 11 // пин такта (англ. clock)
byte segments[10] = {
0b01111101, 0b00100100, 0b01111010, 0b01110110, 0b00100111, // ето символи в зашифровке
0b01010111, 0b01011111, 0b01100100, 0b01111111, 0b01110111
};
void setup() {
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if ( irrecv.decode( &results )) {
Serial.println(results.value, HEX);
if (results.value==0x659A00FF){ // 0x659A00FF ето код с пульта
segments[10] = 1 ; results.value=0;
}
if (results.value==0x659A807F){
segments[10] = 2 ; results.value=0;
}
if (results.value==0x659A40BF){
segments[10] = 3 ; results.value=0;
}
if (results.value==0x659AC03F){
segments[10] = 4 ;results.value=0;
}
if (results.value==0x659A20DF){
segments[10] = 5;results.value=0;
}
if (results.value==0x659AA05F){
segments[10] = 6 ;results.value=0;
}
if (results.value==0x659A609F){
segments[10] = 7 ;results.value=0;
}
if (results.value==0x659AE01F){
segments[10] = 8 ;results.value=0;
}
if (results.value==0x659A10EF){
segments[10] = 9;results.value=0;
}
if (results.value==0x659A906F){
segments[10] = 0 ;results.value=0;
}
if (results.value==0x659AC936 && segments[10] != 9){ // ето прибаление на 1 каждие 200 милисекунд
segments[10] = ++segments[10];
delay(200);
}
if (results.value==0x659A29D6 && segments[10] != 0){ // ето отнимание от числа што сечас каждие 200 милисекунд
segments[10] = --segments[10];
delay(200);
}
if (results.value==0x659A6996){ // случайное число от 0 до 9
segments[10] = (random(0, 10));
delay(100);
}
// между етими коментами должна бить прога для нажатия один раз и оно как слайдами само,
//но штоб можно било отключить уво нажав просто другую кнопку
// код можете записать как ХХХХХХХХ
irrecv.resume();
{
digitalWrite(LATCH_PIN, LOW); // а ето запись на екранчик
// задвигаем (англ. shift out) байт-маску бит за битом,
// начиная с младшего (англ. Least Significant Bit first)
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, segments[segments[10]]);
// чтобы переданный байт отразился на выходах Qx, нужно
// подать на пин строба высокий сигнал
digitalWrite(LATCH_PIN, HIGH);
}
}
}