Плавненько перейдём к частностям...
Вот такая строчка, например, (для LIS302DL):
Wire.send(0x21); // CTRL_REG2 (21h)
Сейчас пишут не .send, а .write - иначе компилятор ругается. Исправил.
Далее. Исходим из того, что 302 и 331 - изделия однотипные, с однотипной процедурой подготовки к работе. Я так понимаю, что (0x21) - это то состояние, в котором должен пребывать регистр CTRL_REG2 для того, чтобы акселерометр начал нормально работать. Т.е. нужно сравнить ДШ 302 и ДШ 331, и выяснить, какой регистр 331-го (имя его) соответствует регистру с именем CTRL_REG2. Выяснить, какое в него должно быть занесено шестнадцатеричное число. Переписать строчку, руководствуясь этими соображениями.
И так - до конца текста. Другого выхода я не вижу. Кроме как искать готовое. Но готового нет - инет ведь не бесконечен, и если бы что-то было в открытом доступе, то оно бы нашлось...
Skype: a_schabanow