Проще всего найти ошибку это проверить работу отдельных кусков скетча, убрав остальной код.
После этого, если все работает по отдельности, к одному куску добавляете второй кусок, если работает - добавляете следующий кусок, если перестало работать, разбиваете кусок на более мелкие куски, нп. добавили код для работы с сд, перестало работать, тогда из кода сд оставляете только ее инициализацию, все остальное отключаете, смотрите результат анализируете. Далее думаю понятно что делать, если нет, то нанимаете программиста, который будет что то похожее делать.
После этого, если все работает по отдельности, к одному куску добавляете второй кусок, если работает - добавляете следующий кусок, если перестало работать, разбиваете кусок на более мелкие куски, нп. добавили код для работы с сд, перестало работать, тогда из кода сд оставляете только ее инициализацию, все остальное отключаете, смотрите результат анализируете. Далее думаю понятно что делать, если нет, то нанимаете программиста, который будет что то похожее делать.