Лучший эмулятор Arduino UnoArduSim V2.6. Вторая серия.


Скетч из концовки первой серии.


Изменение скорости вращения DC Motor(a) при помощи потенциометра.




//Начало скетча


  1. void setup() {
  2. pinMode(5, OUTPUT); pinMode(7, OUTPUT); pinMode(6, INPUT);
  3. }
  4. void loop() {
  5. //контакт A0 считывает сигнал с потенциометра
  6. int sensorReading = analogRead(A0);
  7. int t = map(sensorReading, 0, 1023, 0, 255);
  8. //карта: значения 0, 1023 это от 0 до 5 вольт с потенциометра
  9. //карта: значения 1, 20 это задержка для delay от 1 до миллисекунд
  10. analogWrite(5, t);
  11. digitalWrite(7, LOW);
  12. delay(5000);
  13. digitalWrite(7, HIGH);
  14. delay(5000);
  15. }

//Конец скетча


Пример 1. Вывод текста на I2C LCD дисплей.



//Начало скетча


  1. #include "Wire.h"
  2. #include "Adafruit_LiquidCrystal.h"
  3. Adafruit_LiquidCrystal lcd(0);
  4. void setup() {
  5. lcd.begin(16, 2);
  6. lcd.setBacklight(HIGH);
  7. //pinMode(5, OUTPUT); pinMode(7, OUTPUT); pinMode(6, INPUT);
  8. }
  9. void loop() {
  10. lcd.setCursor(0,0);
  11. lcd.print("Kolotushkin.com");
  12. /*
  13. int sensorReading = analogRead(A0);
  14. int t = map(sensorReading, 0, 1023, 0, 255);
  15. analogWrite(5, t);
  16. digitalWrite(7, LOW);
  17. delay(5000);
  18. digitalWrite(7, HIGH);
  19. delay(5000); */
  20. }

//Конец скетча


Пример 2. Вывод текста и значений на I2C LCD дисплей.



//Начало скетча


  1. #include "Wire.h"
  2. #include "Adafruit_LiquidCrystal.h"
  3. Adafruit_LiquidCrystal lcd(0); //I2C (A4, A5)
  4. float gradus = 0;
  5. int encoder =0;
  6. int flag = 0;
  7. void setup() {
  8. lcd.begin(16, 2);
  9. lcd.setBacklight(HIGH);
  10. pinMode(5, OUTPUT);
  11. pinMode(7, OUTPUT); digitalWrite(7, LOW);
  12. pinMode(6, INPUT);
  13. }
  14. void loop() {
  15. encoder = digitalRead(6);
  16. if ((encoder == HIGH)&&(flag == 0)) { gradus=gradus+22.5; flag =1;}
  17. if ((encoder == LOW)&&(flag == 1)) { gradus=gradus+22.5; flag =0;}
  18. lcd.setCursor(0,0);
  19. lcd.print("Gradusov ");
  20. lcd.print(gradus, 0);
  21. int sensorReading = analogRead(A0);
  22. int t = map(sensorReading, 0, 1023, 1, 255);
  23. analogWrite(5, t);
  24. }

//Конец скетча


Пример 3. Вывод текста и значений на SPI LCD дисплей.



//Начало скетча


  1. #include "Wire.h"
  2. #include "Adafruit_LiquidCrystal.h"
  3. Adafruit_LiquidCrystal lcd(3, 2, 4); //SPI (SPIDATA, SCK, SS)
  4. float gradus = 0;
  5. int encoder =0;
  6. int flag = 0;
  7. void setup() {
  8. lcd.begin(16, 2);
  9. lcd.setBacklight(HIGH);
  10. pinMode(5, OUTPUT);
  11. pinMode(7, OUTPUT); digitalWrite(7, LOW);
  12. pinMode(6, INPUT);
  13. }
  14. void loop() {
  15. encoder = digitalRead(6);
  16. if ((encoder == HIGH)&&(flag == 0)) { gradus=gradus+22.5; flag =1;}
  17. if ((encoder == LOW)&&(flag == 1)) { gradus=gradus+22.5; flag =0;}
  18. lcd.setCursor(0,0);
  19. lcd.print("Gradusov ");
  20. lcd.print(gradus, 0);
  21. int sensorReading = analogRead(A0);
  22. int t = map(sensorReading, 0, 1023, 1, 255);
  23. analogWrite(5, t);
  24. }

//Конец скетча


Пример 4. Вывод текста и значений на LCD дисплей, который имеет 4-битовый параллельный интерфейс.



//Начало скетча


  1. #include "Wire.h"
  2. #include "Adafruit_LiquidCrystal.h"
  3. Adafruit_LiquidCrystal lcd(3, 2, 16, 17, 18, 19);
  4. // paralel port (RS, E, DB4-DB7[1], DB4-DB7[2], DB4-DB7[3], DB4-DB7[4])
  5. //контакт RW подключается к A0 и к нему же подключается потенциометр
  6. float gradus = 0;
  7. int encoder =0;
  8. int flag = 0;
  9. void setup() {
  10. lcd.begin(16, 2);
  11. lcd.setBacklight(HIGH);
  12. pinMode(5, OUTPUT);
  13. pinMode(7, OUTPUT); digitalWrite(7, LOW);
  14. pinMode(4, INPUT);
  15. }
  16. void loop() {
  17. encoder = digitalRead(4);
  18. if ((encoder == HIGH)&&(flag == 0)) { gradus=gradus+22.5; flag =1;}
  19. if ((encoder == LOW)&&(flag == 1)) { gradus=gradus+22.5; flag =0;}
  20. lcd.setCursor(0,0);
  21. lcd.print("Gradusov ");
  22. lcd.print(gradus, 0);
  23. int sensorReading = analogRead(A0);
  24. int t = map(sensorReading, 0, 1023, 1, 255);
  25. analogWrite(5, t);
  26. }

//Конец скетча


Пример 5. Пример 5. Вывод текста на SPI TFT дисплей.



//Начало скетча


  1. #include "TFT.h"
  2. #include "SPI.h"
  3. TFT TFTscreen = TFT(7, 8, 1);//CS, DC, RESET
  4. void setup()
  5. {
  6. TFTscreen.begin();
  7. TFTscreen.stroke(255,0,0);
  8. TFTscreen.setTextSize(3);
  9. }
  10. void loop() {
  11. TFTscreen.text("TFT", 0, 0);
  12. }

//Конец скетча


Пример 6. Вывод текста разного размера и цвета, на SPI TFT дисплей.



//Начало скетча


  1. #include "TFT.h"
  2. #include "SPI.h"
  3. TFT TFTscreen = TFT(7, 8, 1); //CS, DC, RESET
  4. void setup() {
  5. TFTscreen.begin();
  6. TFTscreen.background ( 200,200,200 );
  7. }
  8. void loop() {
  9. TFTscreen.stroke(211,255,35);
  10. TFTscreen.setTextSize(1); // Устанавливаем размер шрифта
  11. TFTscreen.text("1", 10, 10);
  12. TFTscreen.stroke(15,255,183);
  13. TFTscreen.setTextSize(2); // Устанавливаем размер шрифта
  14. TFTscreen.text("2", 10, 30);
  15. TFTscreen.stroke(0,204,255);
  16. TFTscreen.setTextSize(3); // Устанавливаем размер шрифта
  17. TFTscreen.text("3", 10, 55);
  18. TFTscreen.stroke(204,0,255);
  19. TFTscreen.setTextSize(4); // Устанавливаем размер шрифта
  20. TFTscreen.text("4", 10, 90);
  21. TFTscreen.stroke(255,98,0);
  22. TFTscreen.setTextSize(5); // Устанавливаем размер шрифта
  23. TFTscreen.text("5", 50, 15);
  24. TFTscreen.stroke(255,238,0);
  25. TFTscreen.setTextSize(6); // Устанавливаем размер шрифта
  26. TFTscreen.text("6", 50, 70);
  27. TFTscreen.stroke(162,255,0);
  28. TFTscreen.setTextSize(7); // Устанавливаем размер шрифта
  29. TFTscreen.text("7", 110, 10);
  30. TFTscreen.stroke(255,255,255);
  31. TFTscreen.setTextSize(8); // Устанавливаем размер шрифта
  32. TFTscreen.text("8", 110, 70);
  33. delay(500);
  34. }

//Конец скетча


Пример 7. Вывод графических элементов на SPI TFT дисплей.



//Начало скетча


  1. #include "TFT.h"
  2. #include "SPI.h"
  3. TFT TFTscreen = TFT(7, 8, 1); //CS, DC, RESET
  4. void setup() {
  5. TFTscreen.begin();
  6. TFTscreen.background ( 200,200,200 );
  7. }
  8. void TriugolnikLevo( int lxa, int ya1, int ya2, int xa3, int ya3){
  9. TFTscreen.line( lxa, ya1, lxa, ya2);
  10. TFTscreen.line( xa3, ya3, lxa, ya1);
  11. TFTscreen.line( xa3, ya3, lxa, ya2);
  12. }
  13. void TriugolnikPravo( int lx, int y1, int y2, int x3, int y3){
  14. TFTscreen.line( lx, y1, x3, y3);
  15. TFTscreen.line( lx, y2, x3, y3);
  16. TFTscreen.line( lx, y1, lx, y2);
  17. }
  18. void TriugolnikVerh( int x, int y, int pix){
  19. TFTscreen.line( x-pix/2, y+pix/2, x, y);
  20. TFTscreen.line( x, y, x+pix/2, y+pix/2);
  21. TFTscreen.line( x-pix/2, y+pix/2, x+pix/2, y+pix/2);
  22. }
  23. void TriugolnikNiz( int x, int y, int pix){
  24. TFTscreen.line( x-pix/2, y-pix/2, x+pix/2, y-pix/2);
  25. TFTscreen.line( x-pix/2, y-pix/2, x, y);
  26. TFTscreen.line( x, y, x+pix/2, y-pix/2);
  27. }
  28. void Triugolnik1( int x, int y, int pix){
  29. TFTscreen.line( x, y, x, y+pix);
  30. TFTscreen.line( x, y, x+pix, y+pix);
  31. TFTscreen.line( x, y+pix, x+pix, y+pix);
  32. }
  33. void Triugolnik2( int x, int y, int pix){
  34. TFTscreen.line( x, y, x+pix, y);
  35. TFTscreen.line( x, y, x+pix, y+pix);
  36. TFTscreen.line( x+pix, y, x+pix, y+pix);
  37. }
  38. void Triugolnik3( int x, int y, int pix){
  39. TFTscreen.line( x, y, x+pix, y);
  40. TFTscreen.line( x, y, x, y+pix);
  41. TFTscreen.line( x, y+pix, x+pix, y);
  42. }
  43. void Triugolnik4( int x, int y, int pix){
  44. TFTscreen.line( x, y, x+pix, y-pix);
  45. TFTscreen.line( x, y, x+pix, y);
  46. TFTscreen.line( x+pix, y-pix, x+pix, y);
  47. }
  48. void loop() {
  49. TFTscreen.stroke(220,0,0);
  50. TFTscreen.line (0, 10, 10, 0);
  51. TFTscreen.line (10, 10, 150, 10);
  52. TFTscreen.line (0, 20, 160, 20);
  53. TFTscreen. point (3, 3);
  54. TFTscreen.noFill();
  55. TFTscreen.rect(10,30,50,20);
  56. TFTscreen.fill(0,0,255);
  57. TFTscreen.stroke(255,255,255);
  58. TFTscreen.rect(70,30,30,20);
  59. TFTscreen.noStroke();
  60. TFTscreen.fill(0,220,0);
  61. TFTscreen.rect(110,30,40,20,5);
  62. TFTscreen.circle (20, 70, 10);
  63. TFTscreen.stroke(255,255,255);
  64. TFTscreen.circle (50, 70, 10);
  65. TFTscreen.noFill();
  66. TFTscreen.circle (80, 70, 10); //рисуем круг
  67. TriugolnikLevo(120, 60, 80, 100, 70);
  68. TriugolnikPravo(130, 60, 80, 150, 70);
  69. TriugolnikVerh(120, 110, 20);
  70. TriugolnikNiz(140, 110, 20);
  71. Triugolnik1(10, 90, 30);
  72. Triugolnik2(20, 90, 30);
  73. Triugolnik3(60, 90, 30);
  74. Triugolnik4(70, 120, 30);
  75. delay(500);
  76. }

//Конец скетча


Пример 8. Анимация фигур на SPI TFT дисплее, и вывод значений с переменных.



//Начало скетча


  1. #include "TFT.h"
  2. #include "SPI.h"
  3. TFT TFTscreen = TFT(7, 8, 1); //CS, DC, RESET
  4. int ygo=10, go=0;
  5. void setup() {
  6. TFTscreen.begin();
  7. TFTscreen.background ( 200,200,200 );
  8. }
  9. String incomingString;
  10. String tempString;
  11. int var, z=0, z2= 1, s=0;
  12. void PRINT( long text, int x, int y, int srift, int xStep)
  13. { //оптимальные значения (srift 0 xStep 6)(srift 1 xStep 6)(srift 2 xStep 12)
  14. //оптимальные значения (srift 3 xStep 18)(srift 4 xStep 24)(srift 5 xStep 6)
  15. TFTscreen.setTextSize(srift);
  16. int xNext = x;
  17. String textStrin(text);
  18. if (text)
  19. {
  20. int last = textStrin.length();
  21. while(s<1){
  22. while(z < last){
  23. incomingString = textStrin;
  24. tempString = incomingString.substring(z, z2);
  25. var = tempString.toInt();
  26. if (var == 0){ TFTscreen.text("0", xNext, y);}
  27. if (var == 1){ TFTscreen.text("1", xNext, y);}
  28. if (var == 2){ TFTscreen.text("2", xNext, y);}
  29. if (var == 3){ TFTscreen.text("3", xNext, y);}
  30. if (var == 4){ TFTscreen.text("4", xNext, y);}
  31. if (var == 5){ TFTscreen.text("5", xNext, y);}
  32. if (var == 6){ TFTscreen.text("6", xNext, y);}
  33. if (var == 7){ TFTscreen.text("7", xNext, y);}
  34. if (var == 8){ TFTscreen.text("8", xNext, y);}
  35. if (var == 9){ TFTscreen.text("9", xNext, y);}
  36. xNext+=xStep; z++; z2++;
  37. if(z == last){ xNext=x; z=0; z2= 1; return; }
  38. } }
  39. }else{ TFTscreen.text("0", xNext, y);}}
  40. void TriugolnikLevo( int lxa, int ya1, int ya2, int xa3, int ya3){
  41. TFTscreen.line( lxa, ya1, lxa, ya2);
  42. TFTscreen.line( xa3, ya3, lxa, ya1);
  43. TFTscreen.line( xa3, ya3, lxa, ya2);
  44. }
  45. void dvigok () {
  46. if ((ygo<117)&&(go==0)){ ygo+=3; if (ygo>=117){ go=1;}}
  47. if ((ygo>10)&&(go==1)){ ygo-=3; if (ygo<=10){ go=0;}}
  48. }
  49. void loop() {
  50. int sensorReading0 = analogRead(A0);
  51. int t0 = map(sensorReading0, 0, 1023, 0, 127);
  52. int sensorReading1 = analogRead(A1);
  53. int t1 = map(sensorReading1, 0, 1023, 0, 129);
  54. //TFTscreen.background ( 200,200,200 );
  55. TFTscreen.noStroke();
  56. TFTscreen.fill( 200,200,200);
  57. TFTscreen.rect(100,5,50,22);
  58. TFTscreen.rect(100,110,50,22);
  59. TFTscreen.stroke(210,0,0);
  60. PRINT( ygo, 100, 5, 2, 12);
  61. PRINT( t0, 100, 110, 2, 12);
  62. TFTscreen.fill(0,0,255);
  63. TFTscreen.stroke(255,255,255);
  64. //TFTscreen.rect(70,30,30,20);
  65. TFTscreen.rect(t1,30,30,20);
  66. TFTscreen.fill(0,220,0);
  67. //TFTscreen.circle (50, 70, 10);
  68. dvigok ();
  69. TFTscreen.circle (50, ygo, 10);
  70. TFTscreen.stroke(0,0,0);
  71. TriugolnikLevo(140, 60, 80, 30, t0);
  72. //TriugolnikLevo(140, 60, 80, 30, 70);
  73. delay(50);
  74. }

//Конец скетча


Шпаргалка с координатами, для дисплея 128 на 160 пикселей."


Display 128x160

Видео "Лучший эмулятор Arduino UnoArduSim V2.6. Вторая серия."

Подключение LED и TFT дисплея к Arduino."


Лучший эмулятор Arduino UnoArduSim