valter 0 23 августа, 2017 Опубликовано 23 августа, 2017 · Жалоба Sem iz Slovenije (EX YUgoslavija) . Se opravičujem , ker pišem v slovenščini . Mislim da je tako najbolje , saj vsi uporabljamo google translate. Torej rad bi sestavi uro - ki bi odštevale od 60 minut do nič. Rad bi uporabil displej MAX 7219 in arduino UNO.. Prosil bi za uporaben program . To pa rabim za igrico ESCAPE HAUSE . Za pomoč se že vnaprej zahvaljujem. Lep pozdrav iz sončne Slovenije -Primorske - mesta KOPER (Najlepšega obmorskega mesta). L.P. Valter Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvvv 0 23 августа, 2017 Опубликовано 23 августа, 2017 · Жалоба Valter if you use google translate, it's polite to post the text translated to target language or in English. Вот перевод его поста с словенского, прикольный парень ...: Я из Словении (EX YUgoslavia). Прошу прощения за письмо в словенском. Я думаю, что это лучшее, потому что мы все используем google translate. Поэтому я хотел бы сделать час - который отсчитывал бы от 60 минут до нуля. Я хотел бы использовать дисплей MAX 7219 и arduino UNO .. Я бы попросил полезную программу. Это то, что мне нужно для ESCAPE HAUSE. Я уже заранее благодарю вас за помощь. Привет из солнечной Словении - Приморская - город КОПЕР (самый красивый прибрежный город). Л.П. Valter Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
valter 0 23 августа, 2017 Опубликовано 23 августа, 2017 · Жалоба vvvv Se zahvaljujem za pomoč. Bom probal prevajati.Bojim pa se , da bo Googlova Ruščina težko razumljiva.Če ne bo kaj narobe , bi dal gor oba teksta , da bo lahko kdo še kaj dodal (v prevajanju) OK imam program za 7 segmentni led prikazovalnik , ki je zelo kompliciran. Na žalost je moje programiranje na nivoji Copy - paste. Zato bi rabil pomoč pri spremembi programa. /* * Creato da Roberto Tortora. * Sara' anche scritta male, ma è il primo codice che ho scritto per arduino, e sono fiero del mio lavoro :D */ #include <Multiplex7Seg.h> // libreria per gli schermi a 7 segmenti con 4 cifre, riscritta con logica invertita #include <atdlib.h> byte digitPins[] = {6,9,10,11}; // LSB to MSB byte segmentPins[] = {13,3,4,5,12,7,8}; // seg a to g int perndicarattere(); void setup() { pinMode(0, OUTPUT); pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(A3, INPUT); pinMode(A4, OUTPUT); pinMode(A5, OUTPUT); digitalWrite(0, LOW); int tasto, soluzione=0; Multiplex7Seg::set(1, 4, digitPins, segmentPins); int bool1=0, j=0, k=0, x, //j minuti- k secondi - x tempo bool2=0, z=1000, // -z velocità decremento tasto_old=0, flag=0, reset=0, codice=0, buffer=0, key=16, reset2=0; // reset e codice disinnesco while (1) { // ciclo che setta il codice per disinnesco all'avvio key=prendicarattere(); Multiplex7Seg::loadValue(codice); if (buffer<=key && key<=9) { buffer=key; flag=0; } if(analogRead(A0)==0 && analogRead(A1)==0 && analogRead(A2)==0 && analogRead(A3)==0 && flag==0) { codice=(codice *10)+buffer; if (codice!=0) reset2++; buffer=0; flag=1; Multiplex7Seg::loadValue(codice); } if (key==11 && reset2==4) { break; } if (key==10) { reset2=0; flag=1; codice=0; } if (reset2>4) { reset2=0; codice=0; digitalWrite(0, HIGH); delay(50); digitalWrite(0, LOW); } } j=0; k=0; buffer=0; key=16; reset2=0; flag=1; while (1) { // ciclo che setta i minuti key=prendicarattere(); Multiplex7Seg::loadValue(j); if (buffer<=key && key<=9) { buffer=key; flag=0; } if(analogRead(A0)==0 && analogRead(A1)==0 && analogRead(A2)==0 && analogRead(A3)==0 && flag==0) { j=(j *10)+buffer; if (j!=0) reset2++; buffer=0; flag=1; Multiplex7Seg::loadValue(j); } if (key==11 && reset2<=2 && reset2>=1) { break; } if (key==10) { reset2=0; flag=1; j=0; } if (reset2>2) { reset2=0; j=0; digitalWrite(0, HIGH); delay(50); digitalWrite(0, LOW); } } int pin[4]; // pin inizializzazione e dichiarazione dei pin per disinnescare la bomba pin[0]=A5; pin[1]=A4; pin[2]=2; pin[3]=1; buffer=0; key=16; reset2=0; flag=1; int filo=0, caso; while (1) { // ciclo che setta il filo che disinnesca la bomba e sceglie casualmente i restanti fili cosa fanno key=prendicarattere(); Multiplex7Seg::loadValue(filo); if (buffer<=key && key<=4) { buffer=key; flag=0; } if(analogRead(A0)==0 && analogRead(A1)==0 && analogRead(A2)==0 && analogRead(A3)==0 && flag==0) { filo=buffer; if (filo!=0) reset2++; buffer=0; flag=1; Multiplex7Seg::loadValue(filo); } if (key==11 && reset2==1) { break; } if (key==10) { reset2=0; flag=1; filo=0; } if (reset2>1) { reset2=0; filo=0; digitalWrite(0, HIGH); delay(50); digitalWrite(0, LOW); } } buffer=0; srand(millis()); int i; switch (filo) { case 1: buffer=pin[0]; pin[0]=pin[2]; pin[2]=buffer; break; case 2: buffer=pin[1]; pin[1]=pin[2]; pin[2]=buffer; break; case 3: break; case 4: buffer=pin[3]; pin[3]=pin[2]; pin[2]=buffer; break; } while (1) { //ciclo del timer x=j*100+k; digitalWrite(0, LOW); if (k==0) { // riavvolgimento secondi j--; k=60; } if (((millis())%z)==0) { k--; digitalWrite(0, HIGH); //accensione cicalino delay(50); digitalWrite(0, LOW); //spegnimento cicalino } if (!digitalRead(pin[3])==true) { // se il filo viene staccato il timer scorre piu' velocemente z=500; } if (!digitalRead(pin[2])==true) { // se il filo viene staccato il timer bloccato e la bomba disinnescata break; } if (!digitalRead(pin[1])==true && bool1==0) { //se il filo viene staccato ... boom j=0; k=0; bool1++; } if (!digitalRead(pin[0])==true && bool2==0) { //se il filo viene staccato so dimezza il tempo j=j/2; k=k/2; bool2++; } Multiplex7Seg::loadValue(x); // carica un valore intero preso da x tasto=prendicarattere(); if (tasto_old<=tasto && tasto<=9) { tasto_old=tasto; flag=0; } if(analogRead(A0)==0 && analogRead(A1)==0 && analogRead(A2)==0 && analogRead(A3)==0 && flag==0) { soluzione=(soluzione *10)+tasto_old; if (soluzione!=0) reset++; tasto_old=0; flag=1; } if(tasto==10) { //reset soluzione soluzione=0; flag=1; } if (tasto==11) { // visualizzazione della soluzione su schermo Multiplex7Seg::loadValue(soluzione); delay(1000); if (k==0) j--; else k--; if (j<=0 && k==0) { Multiplex7Seg::loadValue(0); break; } } if (reset==4 && soluzione != codice) { reset=0; soluzione=0; digitalWrite(0, HIGH); delay(500); digitalWrite(0, LOW); } if(soluzione == codice) { // confronto soluzione Multiplex7Seg::loadValue(8888); break; } if (j==0 && k==0) { // caso in cui il tempo scade Multiplex7Seg::loadValue(0); digitalWrite(0, HIGH); delay(1000); digitalWrite(0, LOW); break; } } } void loop() { Multiplex7Seg::loadValue(8888); } int prendicarattere(void) { if (analogRead(A0)>=100) { if (analogRead(A0)>=140 && analogRead(A0)<=160) { // Corrispondente alla I Riga return 1; } if (analogRead(A0)>=280 && analogRead(A0)<=310) { return 2; } if (analogRead(A0)>=470 && analogRead(A0)<=510) { return 3; } if (analogRead(A0)>=800 && analogRead(A0)<=830) { return 12; } } if (analogRead(A1)>=100) { if (analogRead(A1)>=140 && analogRead(A1)<=160) { // Corrispondente alla II Riga return 4; } if (analogRead(A1)>=280 && analogRead(A1)<=310) { return 5; } if (analogRead(A1)>=470 && analogRead(A1)<=510) { return 6; } if (analogRead(A1)>=800 && analogRead(A1)<=830) { return 13; } } if (analogRead(A2)>=100) { if (analogRead(A2)>=140 && analogRead(A2)<=160) { // Corrispondente alla III Riga return 7; } if (analogRead(A2)>=280 && analogRead(A2)<=310) { return 8; } if (analogRead(A2)>=470 && analogRead(A2)<=510) { return 9; } if (analogRead(A2)>=800 && analogRead(A2)<=830) { return 14; } } if (analogRead(A3)>=100) { if (analogRead(A3)>=140 && analogRead(A3)<=160) { // Corrispondente alla IV Riga return 10; } if (analogRead(A3)>=280 && analogRead(A3)<=310) { return 0; } if (analogRead(A3)>=470 && analogRead(A3)<=510) { return 11; } if (analogRead(A3)>=800 && analogRead(A3)<=830) { return 15; } } return 16; } VVVV спасибо за вашу помощь. Буду ли я попробовал prevajati.Bojim, что России трудно razumljiva.Če Google не ошибется, отказаться от двух текстов, что кто-то может что-нибудь добавить (в переводе) Хорошо у меня есть программа для 8-сегментного светодиодного дисплея, который является очень сложным. К сожалению, мое программирование на уровне Копировать - Вставить. Таким образом, необходимо, чтобы помочь изменить программу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
valter 0 30 августа, 2017 Опубликовано 30 августа, 2017 · Жалоба Ok napredujem . Tu je program ki na 5 segmentnem displeju izpiše željeni tekst. Problem je še vedno program za uro ... Хорошо, я прогрессирую. Вот программа, которая отображает желаемый текст на дисплее 5-го сегмента. Проблема все еще часовая программа. #include "LedControlMS.h" /* pin 12 is connected to the DataIn pin 11 is connected to the CLK pin 10 is connected to LOAD We have only a single MAX72XX. */ #define NBR_MTX 4 LedControl lc=LedControl(12,11,10, 1); /* we always wait a bit between updates of the display */ String scrollString= "sebastjanova kitajska trgovina xx"; int stringLength=scrollString.length(); char ch0, ch1, ch2, ch3; int nextCharIndex=0; void setup() { /* The MAX72XX is in power-saving mode on startup, we have to do a wakeup call */ Serial.begin (9600); Serial.println("SEBA"); Serial.println(scrollString); Serial.println(stringLength); for (int i=0; i< NBR_MTX; i++){ lc.shutdown(i,false); /* Set the brightness to a low value */ lc.setIntensity(i,8); /* and clear the display */ lc.clearDisplay(i); } delay(800); lc.clearAll(); ch0= scrollString[0]; ch1= scrollString[1]; ch2= scrollString[2]; ch3= scrollString[3]; nextCharIndex=4; } void loop(){ lc.displayChar(0, lc.getCharArrayPosition(ch0)); lc.displayChar(1, lc.getCharArrayPosition(ch1)); lc.displayChar(2, lc.getCharArrayPosition(ch2)); lc.displayChar(3, lc.getCharArrayPosition(ch3)); ch0=ch1; ch1=ch2; ch2=ch3; ch3=scrollString[nextCharIndex++]; if (nextCharIndex>=stringLength) nextCharIndex=0; delay(1000); lc.clearAll(); delay(25); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
valter 0 31 августа, 2017 Опубликовано 31 августа, 2017 · Жалоба Se mi ne da preveč programirati .... Prihaja hladna fronta in se bo ohladilo --->spraznila plaža ...potem bo več volje za programiranje... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvvv 0 1 сентября, 2017 Опубликовано 1 сентября, 2017 · Жалоба Valter, I'm really sorry for the all participants of this forum. But it's obvious you will not get help here. Arduino is not a professional hardware. To answer on your questions user should have board and time to check your software. Try other forums connected with the Arduino via Google like this http://arduino.ru/forumy/programmirovanie or this https://forum.arduino.cc/index.php?PHPSESSI...1&board=4.0 Thank you for the photo :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lagman 1 1 сентября, 2017 Опубликовано 1 сентября, 2017 · Жалоба Так вроде полно в инете проектов таймеров на arduino и MAX 7219, как раз для copy-paste Вот для примера https://brainy-bits.com/blogs/tutorials/ard...max7219-display Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
valter 0 1 сентября, 2017 Опубликовано 1 сентября, 2017 (изменено) · Жалоба Logman hvala za link :beer: Dela... Samo še moram vse skupaj pretvoriti v minute :( . Zunaj se je malo ohladilo , pa bo več časa za programiranje... Logman благодарит вас за то, что вы связали Дело ... Мне просто нужно перевернуть все вместе за несколько минут Изменено 1 сентября, 2017 пользователем valter Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться