|
Различные инструкции [FAQ] Основные инструкции |
18.08.2021, 21:30
|
Сообщение: #1 (1241270)
|
Модель консоли: Xbox Original
Регистрация: 24.12.2020
Возраст: 36
Сообщений: 15
Вы сказали Спасибо: 0
Поблагодарили 9 раз(а) в 3 сообщениях
Сила репутации: 1Репутация: 4 
(с надеждой на лучшее)
|
Пользуюсь этим скетчам уже второй год ,ардуино мини, не каких резисторов не нужно. Подключение по этой схеме :
sleep.h
#include <avr/sleep.h>
#define sync_pin 2 //power button repurposed for sync button (pin 5 on the module)
#define data_pin 3 //data line (pin 6 on the module)
#define clock_pin 4 //clock line (pin 7 on module)
int led_cmd[10] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 0}; //Activates/initialises the LEDs, leaving the center LED lit.
int anim_cmd[10] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 1}; //Makes the startup animation on the ring of light.
int sync_cmd[10] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0}; //Initiates the sync process.
volatile boolean sync_enable = 0;
void sendData(int cmd_do[]) {
pinMode(data_pin, OUTPUT);
digitalWrite(data_pin, LOW); //start sending data.
int prev = 1;
for (int i = 0; i < 10; i++) {
while (prev == digitalRead(clock_pin)) {} //detects change in clock
prev = digitalRead(clock_pin);
// should be after downward edge of clock, so send bit of data now
digitalWrite(data_pin, cmd_do[i]);
while (prev == digitalRead(clock_pin)) {} //detects upward edge of clock
prev = digitalRead(clock_pin);
}
digitalWrite(data_pin, HIGH);
pinMode(data_pin, INPUT);
}
void initLEDs() {
sendData(led_cmd);
delay(50);
sendData(anim_cmd);
delay(50);
}
void wakeUp() {
sync_enable = 1;
}
void sleepNow() {
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // set sleep mode
sleep_enable(); //enable sleep bit
attachInterrupt(0, wakeUp, LOW);
sleep_mode();
sleep_disable(); //disable sleep bit
detachInterrupt(0); // disables interrupt 0 on pin 2
}
void setup() {
Serial.begin(9600);
pinMode(sync_pin, INPUT);
digitalWrite(sync_pin, HIGH);
pinMode(data_pin, INPUT);
pinMode(clock_pin, INPUT);
delay(2000);
initLEDs();
// sendData(sync_cmd);
}
void loop() {
Serial.println("Sleeping.");
sleepNow();
delay(200);
if (sync_enable == 1) {
Serial.println("Syncing.");
sendData(sync_cmd);
sync_enable = 0;
}
}
Последний раз редактировалось in1975; 19.08.2021 в 07:44.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо 28deys за это полезное сообщение:
|
|
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 11:36. Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7 Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.
|
|
|