Guest User

Untitled

a guest
Nov 22nd, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. /*
  2. Exemple de banner publicitari que desplaça els literals de dreta a esquerra.
  3. Display LCD 16x2 de 16 pins compatible amb Hitachi HD44780
  4. Dispositiu de 16 columnes i 2 files que es referencien començant per 0 (0..15)(0..1)
  5. Utilitza la llibreria LiquidCrystal Library (incorporada a Arduino IDE)
  6. */
  7.  
  8. // inclou la llibreria
  9. #include <LiquidCrystal.h>
  10.  
  11. // inicialitza la llibreria amb els ports utilitzats
  12. LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
  13.  
  14. // declara les variables del tipus array
  15. // si l'array és del tipus "char" cal especificar una posició més de les que té el literal
  16. // en aquest concret cas, el literal consta de 50 caràcters, però l'array s'especifica amb [51]
  17. char missatge_linia_0[51] = "Forum de Treballs de Recerca i Credits de Sintesi.";
  18. char missatge_linia_1[51] = "CRP del Tarragones. Complex Educatiu de Tarragona.";
  19. // declara altres variables d'índex
  20. int index_linia_0 = 0;
  21. int index_linia_1 = 0;
  22. int columna = 0;
  23. int i = 0;
  24. int velocitat = 500;
  25.  
  26. void setup() {
  27. // configura el dispositiu LCD amb el número de files i columnes
  28. lcd.begin(16, 2);
  29. }
  30.  
  31. void loop() {
  32. i = 0;
  33. for(columna=16;columna>=0;columna--){
  34. // col·loca el cursor a la columna 0 de la línia 0
  35. lcd.setCursor(columna, 0);
  36. // imprimeix el missatge de la línia 0 segons direcció dreta-esquerra
  37. // si la posició expressada per l'índex cau fora del rang de l'array imprimeix espai en blanc
  38. if(index_linia_0 - i >= 0 && index_linia_0 - i <= 50){lcd.print(missatge_linia_0[index_linia_0 - i]);}
  39. else{lcd.print(" ");}
  40. i++;
  41. }
  42. i = 0;
  43. for(columna=16;columna>=0;columna--){
  44. // col·loca el cursor a la columna 0 de la línia 1
  45. lcd.setCursor(columna, 1);
  46. // imprimeix el missatge de la línia 1 segons direcció dreta-esquerra
  47. // si la posició expressada per l'índex cau fora del rang de l'array imprimeix espai en blanc
  48. if(index_linia_1 - i >= 0 && index_linia_1 - i <= 50){lcd.print(missatge_linia_1[index_linia_1 - i]);}
  49. else{lcd.print(" ");}
  50. i++;
  51. }
  52.  
  53. delay(velocitat);
  54. index_linia_0 = index_linia_0 + 1;
  55. if(index_linia_0 > 50){index_linia_0 = 0;}
  56. index_linia_1 = index_linia_1 + 1;
  57. if(index_linia_1 > 50){index_linia_1 = 0;}
  58. }
Add Comment
Please, Sign In to add comment