Advertisement
NapsterMP3

Artnet para SPI

Aug 30th, 2017
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #include <Artnet.h>
  2. #include <Ethernet.h>
  3. #include <EthernetUdp.h>
  4. #include <SPI.h>
  5.  
  6. #define ssPin 10
  7.  
  8. // Configurações
  9. byte ip[] = {192, 168, 0, 90};
  10. byte mac[] = {0x04, 0xE9, 0xE5, 0x00, 0x69, 0xEC};
  11. const int universo = 0;
  12. int W5100_RESET_PIN = 3;
  13. int d=1;
  14. char canais [512];
  15.  
  16. Artnet artnet;
  17.  
  18. void setup()
  19. {
  20. SPI.begin();
  21.  
  22. pinMode(ssPin, OUTPUT);
  23. digitalWrite(ssPin, HIGH);
  24.  
  25. pinMode(W5100_RESET_PIN, OUTPUT);
  26. digitalWrite(W5100_RESET_PIN, LOW);
  27. delay(100);
  28. digitalWrite(W5100_RESET_PIN, HIGH);
  29. delay(1000);
  30.  
  31. artnet.begin(mac, ip);
  32. artnet.setArtDmxCallback(onDmxFrame);
  33. }
  34.  
  35. void loop()
  36. {
  37. artnet.read();//chamo o onDmxFrame para ler os canais Artnet
  38.  
  39. digitalWrite(ssPin, LOW);
  40. for (int i = 1; i < 513; i++) {
  41. SPI.transfer(canais[i]);
  42. }
  43. digitalWrite(ssPin, HIGH);
  44.  
  45. }
  46.  
  47. void onDmxFrame(uint16_t universe, uint16_t length, uint8_t sequence, uint8_t* data)
  48. {
  49. if (universe == universo){
  50. for (int i = 0; i < 512; i++)//neste ponto eu recebo os 512 canais data[0] até data[511]. é um numeor de 0 até 255 que pode ser usado por exemplo em um "analogWrite"
  51. {
  52. canais[d]=data[i];
  53. d=d+1;
  54. }
  55. d=1;
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement