Цитата Сообщение от Chip Посмотреть сообщение
Попробуй вот этот скетчь и отпишись
Я его еще не проверял
Не забудь настройки в программе сделать на 18 каналов

PHP код:
#define  D2_High PORTD |=B00000100  //red 
#define  D2_LOW PORTD &= B11111011 
#define  D3_High PORTD |=B00001000  //green 
#define  D3_LOW PORTD &= B11110111 
#define  D4_High PORTD |=B00010000  //blue 
#define  D4_LOW PORTD &= B11101111 

#define  D5_High PORTD |=B00100000 
#define  D5_LOW PORTD &= B11011111 
#define  D6_High PORTD |=B01000000  
#define  D6_LOW PORTD &= B10111111 
#define  D7_High PORTD |=B10000000 
#define  D7_LOW PORTD &= B01111111 

#define  D8_High PORTB |=B00000001 
#define  D8_LOW PORTB &= B11111110 
#define  D9_High PORTB |=B00000010 
#define  D9_LOW PORTB &= B11111101 
#define  D10_High PORTB|=B00000100 
#define  D10_LOW PORTB &=B11111011 

#define D11_High PORTB |=B00001000 
#define D11_LOW PORTB &= B11110111 
#define D12_High PORTB |=B00010000 
#define D12_LOW PORTB &= B11101111 
#define D13_High PORTB |=B00100000 
#define D13_LOW PORTB &= B11011111 

#define D14_High PORTC |=B00000001 
#define D14_LOW PORTC &= B11111110 
#define D15_High PORTC |=B00000010 
#define D15_LOW PORTC &= B11111101 
#define D16_High PORTC |=B00000100 
#define D16_LOW PORTC &= B11111011

#define D17_High PORTC |=B00001000 
#define D17_LOW PORTC &= B11110111 
#define D18_High PORTC |=B00010000 
#define D18_LOW PORTC &= B11101111 
#define D19_High PORTC |=B00100000 
#define D19_LOW PORTC &= B11011111

volatile unsigned int tcnt2
volatile byte pwm_time
//byte pwm_time, Red_R_Old, Green_L_Old, Blue_T_Old; 
unsigned long blank=0//таймер простоя 
byte volatile color[18];  //массив храннения цветов 12-ть каналов 


void setup()  

        for (
int i=219i++){pinMode(iOUTPUT);}   
        
Serial.begin(115200); 
   
     
TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2  
    
TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика 
    
TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика 
    
ASSR &= ~(1<<AS2);  //Выбор источника синхронизации таймера если AS2=0 от системного генератора 
    
tcnt2 252//  16000000/31000/64=8 tcnt2=256-8=248.     
    
TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2. 


void loop()  

  if (
Serial.available() > 18)  
  {  
      if (
Serial.read() == 255)  //проверка прификса       
        

            for (
int i 018i++)  
             {                 
               
color[i] = Serial.read();  // прочитать данные о цветах из порта в массив 
             
}       
            
// if (Red_R_Old == color[0] && Green_L_Old == color[4] && Blue_T_Old == color[8])   
             
blank=0
        } 
  } else {  
           if(
blank>100000) { blank=0; for (byte i 018i++)  color[i] = 0;}  
          
blank++;  
         }   
}  
//****************обработчик прерывания******************** 
ISR(TIMER2_OVF_vect)  

    
TCNT2 tcnt2

 
pwm_time++; 
    if(
color[0] > pwm_time D2_High;  else D2_LOW;  
    if(
color[1] > pwm_time D3_High;  else D3_LOW
    if(
color[2] > pwm_time D4_High;  else D4_LOW;  
     
    if(
color[3] > pwm_time D5_High;  else D5_LOW
    if(
color[4] > pwm_time D6_High;  else D6_LOW
    if(
color[5] > pwm_time D7_High;  else D7_LOW;  
     
    if(
color[6] > pwm_time D8_High;  else D8_LOW
    if(
color[7] > pwm_time D9_High;  else D9_LOW
    if(
color[8] > pwm_time D10_High; else D10_LOW
     
    if(
color[9] > pwm_time D11_High; else D11_LOW;  
    if(
color[10] > pwm_timeD12_High; else D12_LOW;         
    if(
color[11] > pwm_timeD13_High; else D13_LOW
    
    if(
color[12] > pwm_timeD14_High; else D14_LOW;  
    if(
color[13] > pwm_timeD15_High; else D15_LOW;         
    if(
color[14] > pwm_timeD16_High; else D16_LOW;
    
    if(
color[15] > pwm_timeD17_High; else D17_LOW;  
    if(
color[16] > pwm_timeD18_High; else D18_LOW;         
    if(
color[17] > pwm_timeD19_High; else D19_LOW;

Спасибо, Chip, Ардину седня получил (Arduino Nano V3.0 (http://www.dealextreme.com/p/arduino-nano-v3-0-81877)), попробовал оба скейча, все завелось, вот только ленты придут на этой неделе.
По работе 6 зон, куда цеплять выходы порта С? D14-D19, это на ноги А0-А5 платы Ардуины, так? Когда вживую буду проверять отпишусь.
Пока на проге Eraser, при 6 зонах шириной 10% (4 по контуру и 2 просто внутри) и разрешайке монитора 1920*1080 частота упала до 9 Герц, что думаю маловато, буду вообщем эксперементировать, когда все соберу.