ну я бы сказал на 40% только убедительно… даже если это 100% правда…
Господа! Есть у кого положительный опыт по разведению старой паяльной пасты. Спирто-канифольный и ЛТИ-120 не шибко помогают. Вони много, а плавится фигово. Мож ТТ или какой активный без отмывочный кто пробовал?
Бесполезно это всё, я что только не пробовал: и спирт и бензин/нефрас и флюсы разные. Помогало (немного) на уровне - сейчас немного размешал и сразу сработал: замешивать с использованием флюса RMA-218 (берешь шпатель, на него пасту с флюсом и вторым шпателем хорошенько «перетираешь»). Но это всё долго не хранится. Уже через несколько дней опять «колом». Не знаю почему…
Просто нужно сразу хранить паяльную пасту в вакуумном пакете и всё будет хорошо. Другого варианта просто нет…
ТТ - это красный такой фасуется в маленькие баночки?
Да.
И, кстати, типа всё уже украдено изобретено до нас. Разбавитель И, судя по составу, можно ещё попробовать глицерин или пропиленгликоль ![]()
Фигня это. Я же говорю - пробовал если не всё, то почти всё.
Этот разбавитель подходит для случая если нормальную паяльную пасту нужно по какой-то причине сделать по жиже. Засохшую он не оживит.
А нафига паста ? Серию делаем ?
Не знаю.
Я когда-то покупал для лужения плат (ещё до того как стал маской пользоваться).
Если безотмывочная то ничем, есть ещё и на двух других основах, одна спиртом, другая водой разбавляются
А вот что будет если на P- канальной транзисторе перепутать S и D ? Вот он совсем не должен работать(по ИИ) или будет, но плохо?
Да, транзистору будет плохо - выгорит диод. ))
Вооозможно, ну и хрен бы с ним, если выгорел не в КЗ.
Дибилизм ситуации, что это готовый девайс(лазерный гравер) продаваемый на али без явных проблем(не замечено в отзывах). Оно вроде сначала работает(или сразу не работает), но вскоре (1-30 мин.) начинает тупить: по оси X движется рывками/не движется/трясётся/ движется только в одну сторону., по оси Y вообще не движется, но явно есть реакция. Причем есть реакция на движение по Z
. Выглядит как или программный глюк или беда с драйверами. Менялись ардуины/прошивка/драйвера/настройки движения. Вроде начинает работать но потом при тех же компонентах условиях опять переставало. Полюбому выходит беда с платой, или магия(совпадение нескольких факторов). Тогда я её отложил(ибо всё равно переделал на рисовалку с сервой, а сейчас решил вернуть управление лазером и всё повторилось.
Тут и увидел енту хрень(перепутаный исток/сток) Питание на плату поступает через два мосфета (на кой?), причём один перевёрнут. Это не ошибка монтажа, ибо на затвор приходит правильно. Напряжение при коммутации норм(под нагрузкой не проверил
)
А как ты решил, что исток со стоком перепутаны?
Я тут писал (год где-то назад), есть у меня модули DC-DC на базе XL4015E. Так вот, что-то мне нужно было в плате поправить и я полез прозванивать и сверяться со схемой. Оказалось , что сами мс XL4015E были «перевёрнуты» (то есть нумерация выводов не как в даташите слева направо, а наоборот справа налево). Видимо выпустили партию с перевёрнутой подложкой (ошибка корпусировки), но чтобы не выбрасывать - переразвели плату и пустили всю партию на продажу (правда дешевле).
Так что не факт, что там что-то перепутано ))
![]()
Чего странного-то? Плата явно не односторонняя, стал быть пины скорее всего выходят на нижнюю сторону.
ЗЫ: а есть еще многослойные платы, там переходное отверстие может нырнуть вглубь и выйти на внутренний слой, а с виду будет выглядеть, что вообще никуда и ни к чему не подключено ))
Не, - двусторонняя, однослойная. Входные 12в заходят в сток первого транзистора
, а выходят уже на исток второго. Больше никуда. И это работает! ![]()
Ха! Ожидаемо после первого транзистора всегда есть напряжение(через диод), меньшее, но повышается до нормы после подачи на затвор. Ну вот на кой так делать? ![]()
никто не сталкивался с чем то таким… что при повторном чтении файлов на sd карте, скорость чтения падает на 33-50% ? при втором, 4, 6, 8 скорость падает, а при 1, 3, 5, 7 скорость нормальная…
если чуть конкретнее не могу понять почему зацикленная анимация, выводится на дисплей при четном воспроизведении медленнее
#include <TFT_eSPI.h>
#include <TJpg_Decoder.h>
#include <SPI.h>
#include <SD.h>
using namespace fs;
#define SD_CS 5
#define TFT_BL 12
#define TOTAL_FRAMES 420
#define SCREEN_W 128
#define SCREEN_H 160
#define IMG_W 113
#define IMG_H 164
#define POS_X ((SCREEN_W - IMG_W) / 2)
#define POS_Y ((SCREEN_H - IMG_H) / 2)
TFT_eSPI tft = TFT_eSPI();
uint16_t* frameBuffer = nullptr;
uint16_t currentFrame = 0;
uint8_t* jpgBuffer = nullptr;
size_t jpgSize = 0;
bool tft_output(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t* bitmap) {
if (y >= tft.height()) return 0;
if (frameBuffer != nullptr) {
uint16_t* dest = frameBuffer + (y * SCREEN_W + x);
uint16_t* src = bitmap;
for (int row = 0; row < h; row++) {
memcpy(dest + row * SCREEN_W, src + row * w, w * 2);
}
}
return 1;
}
bool loadJpgToMemory(uint16_t frameNum) {
char filename[20];
sprintf(filename, "/%03d.jpg", frameNum);
File file = SD.open(filename);
if (!file) return false;
jpgSize = file.size();
if (jpgBuffer != nullptr) {
free(jpgBuffer);
jpgBuffer = nullptr;
}
jpgBuffer = (uint8_t*)malloc(jpgSize);
if (jpgBuffer == nullptr) {
file.close();
return false;
}
size_t bytesRead = file.read(jpgBuffer, jpgSize);
file.close();
return bytesRead == jpgSize;
}
// ★ ФУНКЦИЯ СБРОСА ДЕКОДЕРА ★
void resetDecoder() {
// Полный сброс декодера
TJpgDec.setJpgScale(1);
TJpgDec.setCallback(tft_output);
// Небольшая пауза для стабилизации
delay(5);
Serial.println("Decoder reset!");
}
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("\n=== ST7735 FIXED ===");
pinMode(TFT_BL, OUTPUT);
digitalWrite(TFT_BL, HIGH);
tft.init();
tft.setRotation(0);
tft.setSwapBytes(true);
tft.fillScreen(TFT_BLACK);
if (!SD.begin(SD_CS, SPI)) {
Serial.println("SD Error!");
while(1);
}
Serial.println("SD mounted!");
TJpgDec.setJpgScale(1);
TJpgDec.setCallback(tft_output);
if (!SD.exists("/001.jpg")) {
Serial.println("File 001.jpg not found!");
while(1);
}
size_t bufferSize = SCREEN_W * SCREEN_H * sizeof(uint16_t);
frameBuffer = (uint16_t*)malloc(bufferSize);
if (frameBuffer == nullptr) {
Serial.println("No memory!");
while(1);
}
if (!loadJpgToMemory(1)) {
Serial.println("Failed to load first jpg!");
while(1);
}
memset(frameBuffer, 0, bufferSize);
TJpgDec.drawJpg(POS_X, POS_Y, jpgBuffer, jpgSize);
tft.pushImage(0, 0, SCREEN_W, SCREEN_H, frameBuffer);
Serial.println("Started!");
}
void loop() {
char filename[20];
sprintf(filename, "/%03d.jpg", currentFrame + 1);
if (loadJpgToMemory(currentFrame + 1)) {
memset(frameBuffer, 0, SCREEN_W * SCREEN_H * 2);
TJpgDec.drawJpg(POS_X, POS_Y, jpgBuffer, jpgSize);
tft.pushImage(0, 0, SCREEN_W, SCREEN_H, frameBuffer);
}
currentFrame++;
// ★ КОГДА АНИМАЦИЯ ЗАКАНЧИВАЕТСЯ - ПОЛНЫЙ СБРОС ★
if (currentFrame >= TOTAL_FRAMES) {
currentFrame = 0;
// Освобождаем буфер
if (jpgBuffer != nullptr) {
free(jpgBuffer);
jpgBuffer = nullptr;
}
// Сбрасываем декодер
resetDecoder();
// Принудительно очищаем экран
tft.fillScreen(TFT_BLACK);
// Загружаем первый кадр заново
if (loadJpgToMemory(1)) {
memset(frameBuffer, 0, SCREEN_W * SCREEN_H * 2);
TJpgDec.drawJpg(POS_X, POS_Y, jpgBuffer, jpgSize);
tft.pushImage(0, 0, SCREEN_W, SCREEN_H, frameBuffer);
}
Serial.println("=== CYCLE RESTART ===");
// Небольшая задержка для стабилизации
delay(10);
}
}
библиотека https://github.com/Bodmer/TJpg_Decoder
А тупо измерить (при помощи micros()), продолжительность чтения байта/сектора не судьба?
И сравнить это, скажем, со скоростью SPI. И посмотреть, как это выглядит на осциллографе.
Нужно учиться самому искать как причины, так и способ решения проблемы, а не предлагать все желающим “посмотрите мой код!”. “Код” надо смотреть с инструментом - осциллографом, логическим анализатором, etс. А для этого нужно иметь весь комплект оборудования, не говоря о том, что этот комплект еще нужно собрать в работоспособное устройство. Причем, желательно не на соплях, а при помощи пайки.
а это поможет ?))) данные же в одном месте и я просто их читаю, сам пытался конечно решить, часа 3… ии вовсе решил меня убедить что проблемы нет, и даже код от него не увидел что есть задержки вывода, только с секундомером можно заметить))) библиотеку пытался ему же скормить… не сразу побежал с вопросом))) что то пытался сделать, и сдается мне что я не смогу решить этот вопрос))) ну и есть некоторая вероятность что я что то элементарное упускаю… например буфер где то не очищаю…

